]> Joshua Wise's Git repositories - snipe.git/blobdiff - codegen/blarg.sml
woo it generated some code
[snipe.git] / codegen / blarg.sml
index e482813a9c14e0c297c30af56173754c3cae5398..aacc99311239caa519d35478723752b34aee2f0e 100644 (file)
@@ -13,7 +13,7 @@ sig
   datatype oper = REG of reg |
                      TEMP of Temp.temp |
                      STACKARG of int
-  datatype pred = NV | NE | EQ | LT | GT | AL
+  datatype pred = NV | NE | EQ | LT | GT | LE | GE | AL
   (* instructions *)
   datatype opc =
     MOVLIT of oper * word |
@@ -70,7 +70,7 @@ struct
   datatype oper = REG of reg |
                   TEMP of Temp.temp |
                   STACKARG of int
-  datatype pred = NV | NE | EQ | LT | GT | AL
+  datatype pred = NV | NE | EQ | LT | GT | LE | GE | AL
   (* instructions *)
   datatype opc =
     MOVLIT of oper * word |
@@ -125,6 +125,8 @@ struct
     | predname EQ = "eq"
     | predname LT = "lt"
     | predname GT = "gt"
+    | predname GE = "ge"
+    | predname LE = "le"
     | predname AL = ""
 
   (* gives number (color) associated with reg *)
@@ -132,6 +134,7 @@ struct
     | regtonum R1 = 1
     | regtonum R2 = 2
     | regtonum R3 = 3
+    | regtonum SP = 4
     | regtonum _ = raise ErrorMsg.InternalError ("regtonum: Invalid register")
 
   (* gives reg associated with number (color) *)
@@ -168,7 +171,7 @@ struct
                                  end)
   
   fun pp_oper (REG r) = "%" ^ (regname r)
-    | pp_oper (TEMP t) = (Temp.name t) ^ (Temp.sfx (Temp.size t))
+    | 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"
This page took 0.019706 seconds and 4 git commands to generate.