Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/compiler/Semant/pickle/unpickmod-new.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/Semant/pickle/unpickmod-new.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 772, Thu Jan 4 15:36:41 2001 UTC revision 773, Mon Jan 8 16:18:37 2001 UTC
# Line 132  Line 132 
132            P.SUBSCRIPT_REC,            P.SUBSCRIPT_REC,
133            P.SUBSCRIPT_RAW64,            P.SUBSCRIPT_RAW64,
134            P.UNBOXEDASSIGN,            P.UNBOXEDASSIGN,
135            P.RAW_CCALL]            P.RAW_CCALL NONE]
136    
137      val cmpop_table =      val cmpop_table =
138          #[P.>, P.>=, P.<, P.<=, P.LEU, P.LTU, P.GEU, P.GTU, P.EQL, P.NEQ]          #[P.>, P.>=, P.<, P.<=, P.LEU, P.LTU, P.GEU, P.GTU, P.EQL, P.NEQ]
# Line 144  Line 144 
144      val eqprop_table =      val eqprop_table =
145          #[T.YES, T.NO, T.IND, T.OBJ, T.DATA, T.ABS, T.UNDEF]          #[T.YES, T.NO, T.IND, T.OBJ, T.DATA, T.ABS, T.UNDEF]
146    
147        val ctype_table =
148            #[CTypes.C_void,
149              CTypes.C_float,
150              CTypes.C_double,
151              CTypes.C_long_double,
152              CTypes.C_unsigned CTypes.I_char,
153              CTypes.C_unsigned CTypes.I_short,
154              CTypes.C_unsigned CTypes.I_int,
155              CTypes.C_unsigned CTypes.I_long,
156              CTypes.C_unsigned CTypes.I_long_long,
157              CTypes.C_signed CTypes.I_char,
158              CTypes.C_signed CTypes.I_short,
159              CTypes.C_signed CTypes.I_int,
160              CTypes.C_signed CTypes.I_long,
161              CTypes.C_signed CTypes.I_long_long,
162              CTypes.C_PTR]
163    
164      fun & c (x, t) = (c x, t)      fun & c (x, t) = (c x, t)
165    
166      fun branch l = let      fun branch l = let
# Line 179  Line 196 
196          val boolListM = UU.mkMap ()          val boolListM = UU.mkMap ()
197          val tkindM = UU.mkMap ()          val tkindM = UU.mkMap ()
198          val tkindListM = UU.mkMap ()          val tkindListM = UU.mkMap ()
199            val ctypeM = UU.mkMap ()
200            val ctypeListM = UU.mkMap ()
201            val cciM = UU.mkMap ()
202    
203          val boollist = list boolListM bool          val boollist = list boolListM bool
204    
# Line 255  Line 275 
275              nonshare co              nonshare co
276          end          end
277    
278            fun ctype () = let
279                fun ct #"\020" = CTypes.C_ARRAY (ctype (), int ())
280                  | ct #"\021" = CTypes.C_STRUCT (ctypelist ())
281                  | ct c =
282                    Vector.sub (ctype_table, Char.ord c)
283                    handle General.Subscript => raise Format
284            in
285                share ctypeM ct
286            end
287    
288            and ctypelist () = list ctypeListM ctype ()
289    
290            fun ccall_info () = let
291                fun cp #"C" =
292                    { c_proto = { conv = string (),
293                                  retTy = ctype (),
294                                  paramTys = ctypelist () },
295                      ml_flt_args = boollist (),
296                      ml_flt_res = bool () }
297                  | cp _ = raise Format
298            in
299                share cciM cp
300            end
301    
302          fun primop () = let          fun primop () = let
303              fun po #"\100" = P.ARITH { oper = arithop (), overflow = bool (),              fun po #"\100" = P.ARITH { oper = arithop (), overflow = bool (),
304                                         kind = numkind () }                                         kind = numkind () }
# Line 280  Line 324 
324                | po #"\115" = P.INL_MONOVECTOR (numkind ())                | po #"\115" = P.INL_MONOVECTOR (numkind ())
325                | po #"\116" = P.RAW_LOAD (numkind ())                | po #"\116" = P.RAW_LOAD (numkind ())
326                | po #"\117" = P.RAW_STORE (numkind ())                | po #"\117" = P.RAW_STORE (numkind ())
327                  | po #"\118" = P.RAW_CCALL (SOME (ccall_info ()))
328                | po c =                | po c =
329                  Vector.sub (primop_table, Char.ord c)                  Vector.sub (primop_table, Char.ord c)
330                  handle General.Subscript => raise Format                  handle General.Subscript => raise Format

Legend:
Removed from v.772  
changed lines
  Added in v.773

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0