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/pickmod-new.sml
ViewVC logotype

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

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

revision 1058, Fri Feb 8 20:02:56 2002 UTC revision 1347, Thu Aug 28 21:59:15 2003 UTC
# Line 140  Line 140 
140           DTF, TYCON, T, II, VAR, SD, SG, FSG,  SP, EN,           DTF, TYCON, T, II, VAR, SD, SG, FSG,  SP, EN,
141           STR, F, STE, TCE, STRE, FE, EE, ED, EEV, FX,           STR, F, STE, TCE, STRE, FE, EE, ED, EEV, FX,
142           B, DCON, DICT, FPRIM, FUNDEC, TFUNDEC, DATACON, DTMEM, NRD,           B, DCON, DICT, FPRIM, FUNDEC, TFUNDEC, DATACON, DTMEM, NRD,
143           OVERLD, FCTC, SEN, FEN, SPATH, IPATH, STRID, FCTID, CCI, CTYPE) =           OVERLD, FCTC, SEN, FEN, SPATH, IPATH, STRID, FCTID, CCI, CTYPE,
144             CCALL_TYPE) =
145          (1, 2, 3, 4, 5, 6, 7, 8, 9, 10,          (1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
146           11, 12, 13, 14, 15, 16, 17, 18, 19, 20,           11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
147           21, 22, 23, 24, 25, 26, 27, 28, 29, 30,           21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
148           31, 32, 33, 34, 35, 36, 37, 38, 39, 40,           31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
149           41, 42, 43, 44, 45, 46, 47, 48, 49,           41, 42, 43, 44, 45, 46, 47, 48, 49,
150           50, 51, 52, 53, 54, 55, 56, 57, 58, 59)           50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
151    
152      (* this is a bit awful...      (* this is a bit awful...
153       * (we really ought to have syntax for "functional update") *)       * (we really ought to have syntax for "functional update") *)
# Line 291  Line 292 
292            | arithopc P.FSIN = "\014"            | arithopc P.FSIN = "\014"
293            | arithopc P.FCOS = "\015"            | arithopc P.FCOS = "\015"
294            | arithopc P.FTAN = "\016"            | arithopc P.FTAN = "\016"
295              | arithopc P.REM = "\017"
296              | arithopc P.DIV = "\018"
297              | arithopc P.MOD = "\019"
298      in      in
299          arithopc oper $ []          arithopc oper $ []
300      end      end
# Line 332  Line 336 
336            | CTypes.C_signed CTypes.I_long => %?12            | CTypes.C_signed CTypes.I_long => %?12
337            | CTypes.C_signed CTypes.I_long_long => %?13            | CTypes.C_signed CTypes.I_long_long => %?13
338            | CTypes.C_PTR => %?14            | CTypes.C_PTR => %?14
   
339            | CTypes.C_ARRAY (t, i) => ?20 $ [ctype t, int i]            | CTypes.C_ARRAY (t, i) => ?20 $ [ctype t, int i]
340            | CTypes.C_STRUCT l => ?21 $ [list ctype l]            | CTypes.C_STRUCT l => ?21 $ [list ctype l]
341      end      end
342    
343        fun ccall_type t =
344        let val op $ = PU.$ CCALL_TYPE
345        in  case t of
346              P.CCI32 => "\000" $ []
347            | P.CCI64 => "\001" $ []
348            | P.CCR64 => "\002" $ []
349            | P.CCML  => "\003" $ []
350        end
351    
352      fun ccall_info { c_proto = { conv, retTy, paramTys },      fun ccall_info { c_proto = { conv, retTy, paramTys },
353                       ml_flt_args, ml_flt_res_opt } = let                       ml_args, ml_res_opt, reentrant } = let
354          val op $ = PU.$ CCI          val op $ = PU.$ CCI
355      in      in
356          "C" $ [string conv, ctype retTy, list ctype paramTys,          "C" $ [string conv, ctype retTy, list ctype paramTys,
357                 list bool ml_flt_args, option bool ml_flt_res_opt]                 list ccall_type ml_args, option ccall_type ml_res_opt,
358                   bool reentrant
359                  ]
360      end      end
361    
362      fun primop p = let      fun primop p = let
# Line 376  Line 390 
390                | P.RAW_LOAD kind => ?116 $ [numkind kind]                | P.RAW_LOAD kind => ?116 $ [numkind kind]
391                | P.RAW_STORE kind => ?117 $ [numkind kind]                | P.RAW_STORE kind => ?117 $ [numkind kind]
392                | P.RAW_CCALL (SOME i) => ?118 $ [ccall_info i]                | P.RAW_CCALL (SOME i) => ?118 $ [ccall_info i]
393                  | P.RAW_RECORD { fblock } => ?119 $ [bool fblock]
394    
395                  | P.INLMIN kind => ?120 $ [numkind kind]
396                  | P.INLMAX kind => ?121 $ [numkind kind]
397                  | P.INLABS kind => ?122 $ [numkind kind]
398    
399                  | P.TEST_INF i => ?123 $ [int i]
400                  | P.TRUNC_INF i => ?124 $ [int i]
401                  | P.EXTEND_INF i => ?125 $ [int i]
402                  | P.COPY_INF i => ?126 $ [int i]
403    
404                | P.MKETAG => %?0                | P.MKETAG => %?0
405                | P.WRAP => %?1                | P.WRAP => %?1
# Line 423  Line 447 
447                | P.GETSPECIAL => %?40                | P.GETSPECIAL => %?40
448                | P.USELVAR => %?41                | P.USELVAR => %?41
449                | P.DEFLVAR => %?42                | P.DEFLVAR => %?42
450                | P.INLDIV => %?43                | P.INLNOT => %?43
451                | P.INLMOD => %?44                | P.INLCOMPOSE => %?44
452                | P.INLREM => %?45                | P.INLBEFORE => %?45
453                | P.INLMIN => %?46                | P.INL_ARRAY => %?46
454                | P.INLMAX => %?47                | P.INL_VECTOR => %?47
455                | P.INLABS => %?48                | P.ISOLATE => %?48
456                | P.INLNOT => %?49                | P.WCAST => %?49
457                | P.INLCOMPOSE => %?50                | P.NEW_ARRAY0 => %?50
458                | P.INLBEFORE => %?51                | P.GET_SEQ_DATA => %?51
459                | P.INL_ARRAY => %?52                | P.SUBSCRIPT_REC => %?52
460                | P.INL_VECTOR => %?53                | P.SUBSCRIPT_RAW64 => %?53
461                | P.ISOLATE => %?54                | P.UNBOXEDASSIGN => %?54
462                | P.WCAST => %?55                | P.RAW_CCALL NONE => %?55
463                | P.NEW_ARRAY0 => %?56                | P.INLIGNORE => %?56
464                | P.GET_SEQ_DATA => %?57                | P.INLIDENTITY => %?57
               | P.SUBSCRIPT_REC => %?58  
               | P.SUBSCRIPT_RAW64 => %?59  
               | P.UNBOXEDASSIGN => %?60  
               | P.RAW_CCALL NONE => %?61  
465      end      end
466    
467      fun consig arg = let      fun consig arg = let

Legend:
Removed from v.1058  
changed lines
  Added in v.1347

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