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/FLINT/kernel/primop.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/FLINT/kernel/primop.sml

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

revision 1173, Sat Mar 23 04:18:51 2002 UTC revision 1174, Sat Mar 23 21:14:40 2002 UTC
# Line 106  Line 106 
106       * information is for use by the backend, ML information is for       * information is for use by the backend, ML information is for
107       * use by the CPS converter. *)       * use by the CPS converter. *)
108    | RAW_CCALL of { c_proto: CTypes.c_proto,    | RAW_CCALL of { c_proto: CTypes.c_proto,
109                     ml_flt_args: bool list,                     ml_args: ccall_type list,
110                     ml_flt_res_opt: bool option } option                     ml_res_opt: ccall_type option,
111                       reentrant: bool
112                     } option
113       (* Allocate uninitialized storage on the heap.
114        * The record is meant to hold short-lived C objects, i.e., they
115        * are not ML pointers.  With the tag, the representation is
116        * the same as RECORD with tag tag_raw32.
117        *)
118      | RAW_RECORD of {tag:bool,sz:int}
119    
120    and ccall_type = CCALL_INT32 | CCALL_REAL64 | CCALL_ML_PTR
121    
122  (** default integer arithmetic and comparison operators *)  (** default integer arithmetic and comparison operators *)
123  val IADD = ARITH{oper=op +, overflow=true, kind=INT 31}  val IADD = ARITH{oper=op +, overflow=true, kind=INT 31}
# Line 260  Line 269 
269    | prPrimop (RAW_LOAD nk) = concat ["raw_load(", prNumkind nk, ")"]    | prPrimop (RAW_LOAD nk) = concat ["raw_load(", prNumkind nk, ")"]
270    | prPrimop (RAW_STORE nk) = concat ["raw_store(", prNumkind nk, ")"]    | prPrimop (RAW_STORE nk) = concat ["raw_store(", prNumkind nk, ")"]
271    | prPrimop (RAW_CCALL _) = "raw_ccall"    | prPrimop (RAW_CCALL _) = "raw_ccall"
272      | prPrimop (RAW_RECORD{tag,sz}) =
273           "raw_record"^Int.toString sz^(if tag then "" else "_notag")
274    
275  (* should return more than just a boolean:  (* should return more than just a boolean:
276   * {Store,Continuation}-{read,write} *)   * {Store,Continuation}-{read,write} *)

Legend:
Removed from v.1173  
changed lines
  Added in v.1174

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