diff options
| author | azidar | 2015-03-03 17:26:40 -0800 |
|---|---|---|
| committer | azidar | 2015-03-03 17:26:40 -0800 |
| commit | 355749c83d2066f1a149333ed762a7945d405076 (patch) | |
| tree | 77c47b9d3ef3eb91cfb0d56ad376a3c7a94536db /src/main/stanza/ir-utils.stanza | |
| parent | 36b2fa287c3931ff7eec0b18c23070cdd9f21c15 (diff) | |
In progress for type inference. Looks like other code is breaking, and i dont understand why
Diffstat (limited to 'src/main/stanza/ir-utils.stanza')
| -rw-r--r-- | src/main/stanza/ir-utils.stanza | 101 |
1 files changed, 87 insertions, 14 deletions
diff --git a/src/main/stanza/ir-utils.stanza b/src/main/stanza/ir-utils.stanza index 1aaa264a..4da64981 100644 --- a/src/main/stanza/ir-utils.stanza +++ b/src/main/stanza/ir-utils.stanza @@ -25,27 +25,100 @@ defmethod print (o:OutputStream, op:PrimOp) : print{o, _} $ switch {op == _} : ADD-OP : "add" - ADD-MOD-OP : "add-mod" - SUB-OP : "minus" - SUB-MOD-OP : "sub-mod" - TIMES-OP : "times" - DIVIDE-OP : "divide" + ADD-UU-OP : "add-uu" + ADD-US-OP : "add-us" + ADD-SU-OP : "add-su" + ADD-SS-OP : "add-ss" + SUB-OP : "sub" + SUB-UU-OP : "sub-uu" + SUB-US-OP : "sub-us" + SUB-SU-OP : "sub-su" + SUB-SS-OP : "sub-ss" + MUL-OP : "mul" + MUL-UU-OP : "mul-uu" + MUL-US-OP : "mul-us" + MUL-SU-OP : "mul-su" + MUL-SS-OP : "mul-ss" + DIV-OP : "div" + DIV-UU-OP : "div-uu" + DIV-US-OP : "div-us" + DIV-SU-OP : "div-su" + DIV-SS-OP : "div-ss" MOD-OP : "mod" + MOD-UU-OP : "mod-uu" + MOD-US-OP : "mod-us" + MOD-SU-OP : "mod-su" + MOD-SS-OP : "mod-ss" + QUO-OP : "quo" + QUO-UU-OP : "quo-uu" + QUO-US-OP : "quo-us" + QUO-SU-OP : "quo-su" + QUO-SS-OP : "quo-ss" + REM-OP : "rem" + REM-UU-OP : "rem-uu" + REM-US-OP : "rem-us" + REM-SU-OP : "rem-su" + REM-SS-OP : "rem-ss" + ADD-WRAP-OP : "add-wrap" + ADD-WRAP-UU-OP : "add-wrap-uu" + ADD-WRAP-US-OP : "add-wrap-us" + ADD-WRAP-SU-OP : "add-wrap-su" + ADD-WRAP-SS-OP : "add-wrap-ss" + SUB-WRAP-OP : "sub-wrap" + SUB-WRAP-UU-OP : "sub-wrap-uu" + SUB-WRAP-US-OP : "sub-wrap-us" + SUB-WRAP-SU-OP : "sub-wrap-su" + SUB-WRAP-SS-OP : "sub-wrap-ss" + LESS-OP : "less" + LESS-UU-OP : "less-uu" + LESS-US-OP : "less-us" + LESS-SU-OP : "less-su" + LESS-SS-OP : "less-ss" + LESS-EQ-OP : "less-eq" + LESS-EQ-UU-OP : "less-eq-uu" + LESS-EQ-US-OP : "less-eq-us" + LESS-EQ-SU-OP : "less-eq-su" + LESS-EQ-SS-OP : "less-eq-ss" + GREATER-OP : "greater" + GREATER-UU-OP : "greater-uu" + GREATER-US-OP : "greater-us" + GREATER-SU-OP : "greater-su" + GREATER-SS-OP : "greater-ss" + GREATER-EQ-OP : "greater-eq" + GREATER-EQ-UU-OP : "greater-eq-uu" + GREATER-EQ-US-OP : "greater-eq-us" + GREATER-EQ-SU-OP : "greater-eq-su" + GREATER-EQ-SS-OP : "greater-eq-ss" + EQUAL-OP : "equal" + EQUAL-UU-OP : "equal-uu" + EQUAL-SS-OP : "equal-ss" + MUX-OP : "mux" + MUX-UU-OP : "mux-uu" + MUX-SS-OP : "mux-ss" + PAD-OP : "pad" + PAD-U-OP : "pad-u" + PAD-S-OP : "pad-s" + AS-UINT-OP : "as-UInt" + AS-UINT-U-OP : "as-UInt-u" + AS-UINT-S-OP : "as-UInt-s" + AS-SINT-OP : "as-SInt" + AS-SINT-U-OP : "as-SInt-u" + AS-SINT-S-OP : "as-SInt-s" SHIFT-LEFT-OP : "shift-left" + SHIFT-LEFT-U-OP : "shift-left-u" + SHIFT-LEFT-S-OP : "shift-left-s" SHIFT-RIGHT-OP : "shift-right" - PAD-OP : "pad" + SHIFT-RIGHT-U-OP : "shift-right-u" + SHIFT-RIGHT-S-OP : "shift-right-s" + CONVERT-OP : "convert" + CONVERT-U-OP : "convert-u" + CONVERT-S-OP : "convert-s" BIT-AND-OP : "bit-and" BIT-OR-OP : "bit-or" BIT-XOR-OP : "bit-xor" CONCAT-OP : "concat" - BIT-SELECT-OP : "bit-select" - BITS-SELECT-OP : "bits-select" - MULTIPLEX-OP : "multiplex" - LESS-OP : "less" - LESS-EQ-OP : "less-eq" - GREATER-OP : "greater" - GREATER-EQ-OP : "greater-eq" - EQUAL-OP : "equal" + BIT-SELECT-OP : "bit" + BITS-SELECT-OP : "bits" defmethod print (o:OutputStream, e:Expression) : match(e) : |
