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 1182, Thu Mar 28 16:41:29 2002 UTC revision 1183, Fri Mar 29 19:09:48 2002 UTC
# Line 343  Line 343 
343         ("dispose",       P.DISPOSE,     p1(ar(v1,u))) :-:         ("dispose",       P.DISPOSE,     p1(ar(v1,u))) :-:
344         ("compose",       P.INLCOMPOSE,  p3(ar(pa(ar(v2,v3),ar(v1,v2)),ar(v1,v3)))) :-:         ("compose",       P.INLCOMPOSE,  p3(ar(pa(ar(v2,v3),ar(v1,v2)),ar(v1,v3)))) :-:
345         ("before",        P.INLBEFORE,   p2(ar(pa(v1,v2),v1))) :-:         ("before",        P.INLBEFORE,   p2(ar(pa(v1,v2),v1))) :-:
346           ("ignore",        P.INLIGNORE,   p1(ar(v1,u))) :-:
347    
348    
349         ("length",        P.LENGTH,      p1(ar(v1,i))) :-:         ("length",        P.LENGTH,      p1(ar(v1,i))) :-:
# Line 465  Line 466 
466         ("i31mul",        int31 (P.* ),          ii_i) :-:         ("i31mul",        int31 (P.* ),          ii_i) :-:
467         ("i31mul_8",      int31 (P.* ),          w8w8_w8) :-:         ("i31mul_8",      int31 (P.* ),          w8w8_w8) :-:
468    
469         ("i31quot",       int31 (P./),           ii_i) :-:  (*
   
470         ("i31div",        P.INLDIV,              ii_i) :-:         ("i31div",        P.INLDIV,              ii_i) :-:
471         ("i31div_8",      P.INLDIV,              w8w8_w8) :-:         ("i31div_8",      P.INLDIV,              w8w8_w8) :-:
472    
473         ("i31mod",        P.INLMOD,              ii_i) :-:         ("i31mod",        P.INLMOD,              ii_i) :-:
474    
475         ("i31rem",        P.INLREM,              ii_i) :-:         ("i31rem",        P.INLREM,              ii_i) :-:
476    *)
477           ("i31div",        int31 (P.DIV),         ii_i) :-:
478           ("i31div_8",      int31 (P.DIV),         w8w8_w8) :-:
479    
480           ("i31mod",        int31 (P.MOD),         ii_i) :-:
481    
482           ("i31quot",       int31 (P./),           ii_i) :-:
483    
484           ("i31rem",        int31 (P.REM),         ii_i) :-:
485    
486         ("i31orb",        bits31 P.ORB,          ii_i) :-:         ("i31orb",        bits31 P.ORB,          ii_i) :-:
487         ("i31orb_8",      bits31 P.ORB,          w8w8_w8) :-:         ("i31orb_8",      bits31 P.ORB,          w8w8_w8) :-:
# Line 511  Line 520 
520         ("i31ge_c",       int31cmp (P.>=),       cc_b) :-:         ("i31ge_c",       int31cmp (P.>=),       cc_b) :-:
521    
522         ("i31ltu",        word31cmp P.LTU,       ii_b) :-:         ("i31ltu",        word31cmp P.LTU,       ii_b) :-:
   
523         ("i31geu",        word31cmp P.GEU,       ii_b) :-:         ("i31geu",        word31cmp P.GEU,       ii_b) :-:
   
524         ("i31eq",         int31cmp P.EQL,        ii_b) :-:         ("i31eq",         int31cmp P.EQL,        ii_b) :-:
   
525         ("i31ne",         int31cmp P.NEQ,        ii_b) :-:         ("i31ne",         int31cmp P.NEQ,        ii_b) :-:
526    
527         ("i31max",        P.INLMAX,              ii_i) :-:         ("i31min",        P.INLMIN (P.INT 31),   ii_i) :-:
528           ("i31max",        P.INLMAX (P.INT 31),   ii_i) :-:
529         ("i31min",        P.INLMIN,              ii_i) :-:         ("i31abs",        P.INLABS (P.INT 31),   i_i) :-:
   
        ("i31abs",        P.INLABS,              i_i) :-:  
530    
531         (*** integer 32 primops ***)         (*** integer 32 primops ***)
532         ("i32mul",        int32 (P.* ),          i32i32_i32) :-:         ("i32mul",        int32 (P.* ),          i32i32_i32) :-:
533           ("i32div",        int32 (P.DIV),         i32i32_i32) :-:
534           ("i32mod",        int32 (P.MOD),         i32i32_i32) :-:
535         ("i32quot",       int32 (P./),           i32i32_i32) :-:         ("i32quot",       int32 (P./),           i32i32_i32) :-:
536           ("i32rem",        int32 (P.REM),         i32i32_i32) :-:
537         ("i32add",        int32 (P.+),           i32i32_i32) :-:         ("i32add",        int32 (P.+),           i32i32_i32) :-:
538         ("i32sub",        int32 (P.-),           i32i32_i32) :-:         ("i32sub",        int32 (P.-),           i32i32_i32) :-:
539         ("i32orb",        bits32 P.ORB,          i32i32_i32) :-:         ("i32orb",        bits32 P.ORB,          i32i32_i32) :-:
# Line 542  Line 549 
549         ("i32eq",         int32cmp (P.EQL),      i32i32_b) :-:         ("i32eq",         int32cmp (P.EQL),      i32i32_b) :-:
550         ("i32ne",         int32cmp (P.NEQ),      i32i32_b) :-:         ("i32ne",         int32cmp (P.NEQ),      i32i32_b) :-:
551    
552           ("i32min",        P.INLMIN (P.INT 32),   i32i32_i32) :-:
553           ("i32max",        P.INLMAX (P.INT 32),   i32i32_i32) :-:
554           ("i32abs",        P.INLABS (P.INT 32),   i32_i32) :-:
555    
556         (*         (*
557          * WARNING: the lambda types in translate.sml are all wrong for          * WARNING: the lambda types in translate.sml are all wrong for
558          * this. The inlprimops for these must be parameterized over the          * this. The inlprimops for these must be parameterized over the
# Line 576  Line 587 
587         ("f64tan",        purefloat64 P.FTAN,     f64_f64) :-:         ("f64tan",        purefloat64 P.FTAN,     f64_f64) :-:
588         ("f64sqrt",       purefloat64 P.FSQRT,    f64_f64) :-:         ("f64sqrt",       purefloat64 P.FSQRT,    f64_f64) :-:
589    
590           ("f64min",        P.INLMIN (P.FLOAT 64),  f64f64_f64) :-:
591           ("f64max",        P.INLMAX (P.FLOAT 64),  f64f64_f64) :-:
592    
593         (*** float64 array ***)         (*** float64 array ***)
594         ("f64Sub",        sub (P.FLOAT 64),       numSubTy) :-:         ("f64Sub",        sub (P.FLOAT 64),       numSubTy) :-:
595         ("f64chkSub",     chkSub (P.FLOAT 64),    numSubTy) :-:         ("f64chkSub",     chkSub (P.FLOAT 64),    numSubTy) :-:
# Line 633  Line 647 
647         (* word31 primops *)         (* word31 primops *)
648         ("w31mul",       word31 (P.* ),          ww_w) :-:         ("w31mul",       word31 (P.* ),          ww_w) :-:
649         ("w31div",       word31 (P./),           ww_w) :-:         ("w31div",       word31 (P./),           ww_w) :-:
650           ("w31mod",       word31 (P.REM),         ww_w) :-:
651         ("w31add",       word31 (P.+),           ww_w) :-:         ("w31add",       word31 (P.+),           ww_w) :-:
652         ("w31sub",       word31 (P.-),           ww_w) :-:         ("w31sub",       word31 (P.-),           ww_w) :-:
653         ("w31orb",       word31 P.ORB,           ww_w) :-:         ("w31orb",       word31 P.ORB,           ww_w) :-:
# Line 652  Line 667 
667         ("w31ChkRshiftl",P.INLRSHIFTL(P.UINT 31),ww_w) :-:         ("w31ChkRshiftl",P.INLRSHIFTL(P.UINT 31),ww_w) :-:
668         ("w31ChkLshift", P.INLLSHIFT(P.UINT 31), ww_w) :-:         ("w31ChkLshift", P.INLLSHIFT(P.UINT 31), ww_w) :-:
669    
670           ("w31min",        P.INLMIN (P.UINT 31),  ww_w) :-:
671           ("w31max",        P.INLMAX (P.UINT 31),  ww_w) :-:
672    
673         (*** word32 primops ***)         (*** word32 primops ***)
674         ("w32mul",       word32 (P.* ),          w32w32_w32) :-:         ("w32mul",       word32 (P.* ),          w32w32_w32) :-:
675         ("w32div",       word32 (P./),           w32w32_w32) :-:         ("w32div",       word32 (P./),           w32w32_w32) :-:
676           ("w32mod",       word32 (P.REM),         w32w32_w32) :-:
677         ("w32add",       word32 (P.+),           w32w32_w32) :-:         ("w32add",       word32 (P.+),           w32w32_w32) :-:
678         ("w32sub",       word32 (P.-),           w32w32_w32) :-:         ("w32sub",       word32 (P.-),           w32w32_w32) :-:
679         ("w32orb",       word32 P.ORB,           w32w32_w32) :-:         ("w32orb",       word32 P.ORB,           w32w32_w32) :-:
# Line 674  Line 693 
693         ("w32ChkRshiftl",P.INLRSHIFTL(P.UINT 32),w32w_w32) :-:         ("w32ChkRshiftl",P.INLRSHIFTL(P.UINT 32),w32w_w32) :-:
694         ("w32ChkLshift", P.INLLSHIFT(P.UINT 32), w32w_w32) :-:         ("w32ChkLshift", P.INLLSHIFT(P.UINT 32), w32w_w32) :-:
695    
696           ("w32min",        P.INLMIN (P.UINT 32),  w32w32_w32) :-:
697           ("w32max",        P.INLMAX (P.UINT 32),  w32w32_w32) :-:
698    
699         (* experimental C FFI primops *)         (* experimental C FFI primops *)
700         ("raww8l",       P.RAW_LOAD (P.UINT 8),    w32_w32) :-:         ("raww8l",       P.RAW_LOAD (P.UINT 8),    w32_w32) :-:
701         ("rawi8l",       P.RAW_LOAD (P.INT 8),     w32_i32) :-:         ("rawi8l",       P.RAW_LOAD (P.INT 8),     w32_i32) :-:

Legend:
Removed from v.1182  
changed lines
  Added in v.1183

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