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/statenv/prim.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/Semant/statenv/prim.sml

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

revision 1177, Mon Mar 25 16:49:18 2002 UTC revision 1178, Mon Mar 25 20:51:48 2002 UTC
# Line 297  Line 297 
297   * type that encodes the type of the actual C function in order to be able to   * type that encodes the type of the actual C function in order to be able to
298   * generate code according to the C calling convention.   * generate code according to the C calling convention.
299   * (In other words, 'b will be a completely ad-hoc encoding of a CTypes.c_proto   * (In other words, 'b will be a completely ad-hoc encoding of a CTypes.c_proto
300   * value in ML types.)   * value in ML types.  The encoding also contains information about
301   *   * the intended re-entrancy of the call.)
  * The reentrant version of the operator has an extra bool type parameter.  
  * Its value is ignored.  
302   *)   *)
303  val rccType = p3(ar(tp(w32,v1,v2),v3))  val rccType = p3(ar(tp(w32,v1,v2),v3))
 val rccType' = p3(ar(tp(s,v1,v2),v3))  
 val reentrantRccType = p3(ar(BT.tupleTy[w32,v1,v2,bo],v3))  
 val reentrantRccType' = p3(ar(BT.tupleTy[s,v1,v2,bo],v3))  
304    
305  in  in
306    
# Line 697  Line 692 
692         ("rawf32s",      P.RAW_STORE (P.FLOAT 32), w32f64_u) :-:         ("rawf32s",      P.RAW_STORE (P.FLOAT 32), w32f64_u) :-:
693         ("rawf64s",      P.RAW_STORE (P.FLOAT 64), w32f64_u) :-:         ("rawf64s",      P.RAW_STORE (P.FLOAT 64), w32f64_u) :-:
694         ("rawccall",     P.RAW_CCALL NONE,         rccType) :-:         ("rawccall",     P.RAW_CCALL NONE,         rccType) :-:
        ("rawccall_direct", P.RAW_CCALL NONE,      rccType') :-:  
   
           (* Support for experimental reentrant C calls *)  
        ("rawccall_reentrant",  P.RAW_CCALL NONE,  reentrantRccType) :-:  
        ("rawccall_reentrant_direct",  P.RAW_CCALL NONE,  reentrantRccType') :-:  
695    
696            (* Support for direct construction of C objects on ML heap.            (* Support for direct construction of C objects on ML heap.
697             * rawrecord builds a record holding C objects on the heap.             * rawrecord builds a record holding C objects on the heap.
# Line 711  Line 701 
701             * the record as a ML object, in case it passes thru a gc boundary.             * the record as a ML object, in case it passes thru a gc boundary.
702             * rawupdatexxx writes to the record.             * rawupdatexxx writes to the record.
703             *)             *)
704         ("rawrecord",    P.RAW_RECORD{tag=true,sz=4}, i_x) :-:         ("rawrecord",    P.RAW_RECORD { fblock = false }, i_x) :-:
705         ("rawrecord_notag",P.RAW_RECORD{tag=false,sz=4}, i_x) :-:         ("rawrecord64",  P.RAW_RECORD { fblock = true }, i_x) :-:
        ("rawrecord64",    P.RAW_RECORD{tag=true,sz=8}, i_x) :-:  
        ("rawrecord64_notag",P.RAW_RECORD{tag=false,sz=8}, i_x) :-:  
706    
707         ("rawselectw8",  P.RAW_LOAD (P.UINT 8), xw32_w32) :-:         ("rawselectw8",  P.RAW_LOAD (P.UINT 8), xw32_w32) :-:
708         ("rawselecti8",  P.RAW_LOAD (P.INT 8), xw32_i32) :-:         ("rawselecti8",  P.RAW_LOAD (P.INT 8), xw32_i32) :-:

Legend:
Removed from v.1177  
changed lines
  Added in v.1178

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