signature STRINGIFY =
sig
- type asm = x86.insn list
+ type asm = Blarg.insn list
val stringify : (string -> string) -> asm -> string
end
structure Stringify :> STRINGIFY =
struct
- type asm = x86.insn list
- structure X = x86
+ type asm = Blarg.insn list
+ structure X = Blarg
(* val stringify : asm -> string
* turns a x86 instruction list into a string of assembly code for these instructions *)
- fun stringify' rn (X.CALL (l, n)) = X.prettyprint X.Long (X.CALL ((Symbol.symbol (rn (Symbol.name l))), n))
- | stringify' rn x = X.prettyprint X.Long x
+ fun stringify' rn (X.INSN (pred, X.MOVSYM (r, n))) = X.print (X.INSN (pred, X.MOVSYM (r, (Symbol.symbol (rn (Symbol.name n))))))
+ | stringify' rn x = X.print x
(* val stringify : asm -> string *)
- fun stringify realname l = foldr (fn (a,b) => (stringify' realname a) ^ b) ("") l
+ fun stringify realname l = String.concat (List.map (stringify' realname) l)
end