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/compiler/ElabData/prim/primop.sig
ViewVC logotype

Diff of /sml/trunk/compiler/ElabData/prim/primop.sig

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

revision 251, Mon Apr 19 02:55:26 1999 UTC revision 773, Mon Jan 8 16:18:37 2001 UTC
# Line 129  Line 129 
129    
130  datatype arithop  datatype arithop
131    = + | - | * | / | ~           (* int or float *)    = + | - | * | / | ~           (* int or float *)
132    | ABS                         (* floating point only *)    | ABS | FSQRT | FSIN | FCOS | FTAN            (* floating point only *)
133    | LSHIFT | RSHIFT | RSHIFTL   (* int only *)    | LSHIFT | RSHIFT | RSHIFTL   (* int only *)
134    | ANDB | ORB | XORB | NOTB    (* int only *)    | ANDB | ORB | XORB | NOTB    (* int only *)
135    
# Line 215  Line 215 
215    | GET_SEQ_DATA                (* get data pointer from arr/vec header *)    | GET_SEQ_DATA                (* get data pointer from arr/vec header *)
216    | SUBSCRIPT_REC               (* record subscript operation *)    | SUBSCRIPT_REC               (* record subscript operation *)
217    | SUBSCRIPT_RAW64             (* raw64 subscript operation *)    | SUBSCRIPT_RAW64             (* raw64 subscript operation *)
218    (* Primops to support new experimental C FFI. *)
219      | RAW_LOAD of numkind         (* load from arbitrary memory location *)
220      | RAW_STORE of numkind        (* store to arbitrary memory location *)
221        (* make a call to a C-function;
222         * The primop carries C function prototype information and specifies
223         * which of its (ML-) arguments are floating point. C prototype
224         * information is for use by the backend, ML information is for
225         * use by the CPS converter. *)
226      | RAW_CCALL of { c_proto: CTypes.c_proto,
227                       ml_flt_args: bool list,
228                       ml_flt_res: bool } option
229    
230    
231  val IADD : primop  (* default integer addition *)  val IADD : primop  (* default integer addition *)
# Line 233  Line 244 
244    
245  val prNumkind : numkind -> string  val prNumkind : numkind -> string
246  val prPrimop: primop -> string  val prPrimop: primop -> string
 val purePrimop : primop -> bool  
247  val mayRaise : primop -> bool  val mayRaise : primop -> bool
248  (* This should return more than just a boolean.  (* This should return more than just a boolean.
249   * True means "can not be dead-code eliminated" *)   * True means "can not be dead-code eliminated" *)

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

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