[MLton-commit] r7140

Wesley Terpstra wesley at mlton.org
Fri Jun 12 09:24:40 PDT 2009


Codegens that want to represent ML types in their output need deSeq.
GCState and Label types are not integer, but pointer.


----------------------------------------------------------------------

U   mlton/trunk/mlton/backend/rep-type.fun
U   mlton/trunk/mlton/backend/rep-type.sig

----------------------------------------------------------------------

Modified: mlton/trunk/mlton/backend/rep-type.fun
===================================================================
--- mlton/trunk/mlton/backend/rep-type.fun	2009-06-12 16:22:21 UTC (rev 7139)
+++ mlton/trunk/mlton/backend/rep-type.fun	2009-06-12 16:24:39 UTC (rev 7140)
@@ -231,6 +231,12 @@
          case node t of
             Real s => SOME s
           | _ => NONE
+      
+      val deSeq: t -> t vector option =
+         fn t =>
+         case node t of
+            Seq v => SOME v
+          | _ => NONE
 
       val deWord: t -> WordSize.t option =
          fn t =>
@@ -320,6 +326,8 @@
             else 
                case node t of
                   CPointer => C.CPointer
+                | GCState => C.CPointer
+                | Label _ => C.CPointer
                 | Real s =>
                      (case s of
                          RealSize.R32 => C.Real32

Modified: mlton/trunk/mlton/backend/rep-type.sig
===================================================================
--- mlton/trunk/mlton/backend/rep-type.sig	2009-06-12 16:22:21 UTC (rev 7139)
+++ mlton/trunk/mlton/backend/rep-type.sig	2009-06-12 16:24:39 UTC (rev 7140)
@@ -65,6 +65,7 @@
       val deLabel: t -> Label.t option
       val deObjptr: t -> ObjptrTycon.t option
       val deReal: t -> RealSize.t option
+      val deSeq: t -> t vector option
       val deWord: t -> WordSize.t option
       val equals: t * t -> bool
       val exnStack: unit -> t




More information about the MLton-commit mailing list