]> Joshua Wise's Git repositories - snipe.git/blame - codegen/stringifier.sml
Remember to emit _l5_ functions.
[snipe.git] / codegen / stringifier.sml
CommitLineData
6ade8b0a 1(* L3 compiler
0a24e44d 2 * stringifier
12aa4087 3 * turns a list of x86 insns into the assembly code to generate them
0a24e44d 4 * Author: Chris Lu <czl@andrew.cmu.edu>
12aa4087
JW
5 *)
6
7signature STRINGIFY =
8sig
f716a180 9 type asm = Blarg.insn list
6ade8b0a 10 val stringify : (string -> string) -> asm -> string
12aa4087
JW
11end
12
13structure Stringify :> STRINGIFY =
14struct
f716a180
JW
15 type asm = Blarg.insn list
16 structure X = Blarg
12aa4087 17
0a24e44d 18 (* val stringify : asm -> string
12aa4087
JW
19 * turns a x86 instruction list into a string of assembly code for these instructions *)
20
c148fe94
JW
21 fun stringify' rn (X.INSN (pred, X.MOVSYM (r, n))) = X.print (X.INSN (pred, X.MOVSYM (r, (Symbol.symbol (rn (Symbol.name n))))))
22 | stringify' rn x = X.print x
12aa4087 23
0a24e44d 24 (* val stringify : asm -> string *)
5c79bb68 25 fun stringify realname l = String.concat (List.map (stringify' realname) l)
12aa4087
JW
26
27end
This page took 0.024848 seconds and 4 git commands to generate.