]> Joshua Wise's Git repositories - snipe.git/blobdiff - codegen/liveness.sml
Initial import of l4c
[snipe.git] / codegen / liveness.sml
index 24123b9013ffc3e1e5c7bc5feb98caa87f2cb714..4c8e4ad3fa868b45d00fc179e076b25198be7de7 100644 (file)
@@ -77,10 +77,14 @@ struct
        * helper functions to discard constant operands *)
       fun defhit (X.REG a) = [DEF(X.REG a)]
         | defhit (X.TEMP a) = [DEF(X.TEMP a)]
+        | defhit (X.REL(o1, o2)) = usehit o1 @ usehit o2
+        | defhit (X.OSIZE(s, oo)) = defhit oo
         | defhit (_) = nil
     
-      fun usehit (X.REG a) = [USE(X.REG a)]
+      and usehit (X.REG a) = [USE(X.REG a)]
         | usehit (X.TEMP a) = [USE(X.TEMP a)]
+        | usehit (X.REL(o1, o2)) = usehit o1 @ usehit o2
+        | usehit (X.OSIZE(s, oo)) = usehit oo
         | usehit (_) = nil
 
       fun callhit 0 = nil
@@ -98,8 +102,8 @@ struct
       fun gendef (n, X.DIRECTIVE(_))           = (nil)
         | gendef (n, X.COMMENT(_))             = (nil)
         | gendef (n, X.LIVEIGN (_))            = ([SUCC (n+1)])
-        | gendef (n, X.SIZE(_, i))             = gendef (n,i)
         | gendef (n, X.MOV(dest, src))         = (defhit dest @ usehit src @ [SUCC(n+1), ISMOVE])
+        | gendef (n, X.LEA(dest, src))         = (defhit dest @ usehit src @ [SUCC(n+1)])
         | gendef (n, X.SUB(dest, src))         = (defhit dest @ usehit dest @ usehit src @ [SUCC(n+1)])
         | gendef (n, X.IMUL(dest, src))        = (defhit dest @ usehit dest @ usehit src @ [SUCC(n+1)])
         | gendef (n, X.IMUL3(dest, src, _))    = (defhit dest @ usehit src @ [SUCC(n+1)])
This page took 0.601762 seconds and 4 git commands to generate.