]> Joshua Wise's Git repositories - snipe.git/blobdiff - codegen/blarg.sml
Fix some stupid bugs in code generation.
[snipe.git] / codegen / blarg.sml
index cf3ea4c59044e77bf940ff1309336acffce1e573..c350b9d4886e5911d06b5498b28afb59dc73f78c 100644 (file)
@@ -197,11 +197,11 @@ struct
                                    val compare = Int.compare
                                  end)
   
                                    val compare = Int.compare
                                  end)
   
-  fun pp_oper (REG r) = "%" ^ (regname r)
+  fun pp_oper (REG r) = (regname r)
     | pp_oper (TEMP t) = (Temp.name t)
     | pp_oper (STACKARG i) = "arg#"^Int.toString i
   
     | pp_oper (TEMP t) = (Temp.name t)
     | pp_oper (STACKARG i) = "arg#"^Int.toString i
   
-  fun pp_insn pr (MOVLIT (d, w)) = "\tmov"^pr^" "^(pp_oper d)^", #"^(Word.toString w)^"\n"
+  fun pp_insn pr (MOVLIT (d, w)) = "\tmov"^pr^" "^(pp_oper d)^", #0x"^(Word.toString w)^"\n"
     | pp_insn pr (MOVSYM (d, s)) = "\tmov"^pr^" "^(pp_oper d)^", #"^(Symbol.name s)^"\n"
     | pp_insn pr (MOVLBL (d, l)) = "\tmov"^pr^" "^(pp_oper d)^", #"^(Label.name l)^"\n"
     | pp_insn pr (LDR (d, s)) = "\tldr"^pr^" "^(pp_oper d)^", ["^(pp_oper s)^"]\n"
     | pp_insn pr (MOVSYM (d, s)) = "\tmov"^pr^" "^(pp_oper d)^", #"^(Symbol.name s)^"\n"
     | pp_insn pr (MOVLBL (d, l)) = "\tmov"^pr^" "^(pp_oper d)^", #"^(Label.name l)^"\n"
     | pp_insn pr (LDR (d, s)) = "\tldr"^pr^" "^(pp_oper d)^", ["^(pp_oper s)^"]\n"
@@ -218,13 +218,13 @@ struct
     | pp_insn pr (NOTS (d, s)) = "\tnots"^pr^" "^(pp_oper d)^", "^(pp_oper s)^"\n"
     | pp_insn pr (PUSH (d, s)) = "\tpush"^pr^" "^(pp_oper d)^", "^(pp_oper s)^"\n"
     | pp_insn pr (POP (d, s)) = "\tpop"^pr^" "^(pp_oper d)^", "^(pp_oper s)^"\n"
     | pp_insn pr (NOTS (d, s)) = "\tnots"^pr^" "^(pp_oper d)^", "^(pp_oper s)^"\n"
     | pp_insn pr (PUSH (d, s)) = "\tpush"^pr^" "^(pp_oper d)^", "^(pp_oper s)^"\n"
     | pp_insn pr (POP (d, s)) = "\tpop"^pr^" "^(pp_oper d)^", "^(pp_oper s)^"\n"
-    | pp_insn pr (CALL (d, s, n)) = "\tcall"^pr^" "^(pp_oper d)^", "^(pp_oper s)^" # ("^(Int.toString n)^" args)\n"
+    | pp_insn pr (CALL (d, s, n)) = "\tcall"^pr^" "^(pp_oper d)^", "^(pp_oper s)^" @ ("^(Int.toString n)^" args)\n"
     | pp_insn pr (SHR (d, s)) = "\tshr"^pr^" "^(pp_oper d)^", "^(pp_oper s)^"\n"
     | pp_insn pr (SHL (d, s)) = "\tshl"^pr^" "^(pp_oper d)^", "^(pp_oper s)^"\n"
     
   (* pretty prints the asm *)
   fun print (DIRECTIVE(str)) = str ^ "\n"
     | pp_insn pr (SHR (d, s)) = "\tshr"^pr^" "^(pp_oper d)^", "^(pp_oper s)^"\n"
     | pp_insn pr (SHL (d, s)) = "\tshl"^pr^" "^(pp_oper d)^", "^(pp_oper s)^"\n"
     
   (* pretty prints the asm *)
   fun print (DIRECTIVE(str)) = str ^ "\n"
-    | print (COMMENT(str)) = "// " ^ str ^ "\n"
+    | print (COMMENT(str)) = "@ " ^ str ^ "\n"
     | print (LABEL(l)) = Label.name l ^ ":\n"
     | print (INSN (pred, insn)) = pp_insn (predname pred) insn
     | print (LIVEIGN i) = print i
     | print (LABEL(l)) = Label.name l ^ ":\n"
     | print (INSN (pred, insn)) = pp_insn (predname pred) insn
     | print (LIVEIGN i) = print i
This page took 0.020499 seconds and 4 git commands to generate.