aboutsummaryrefslogtreecommitdiff
path: root/src/main/stanza/ir-utils.stanza
diff options
context:
space:
mode:
authorazidar2015-03-03 17:26:40 -0800
committerazidar2015-03-03 17:26:40 -0800
commit355749c83d2066f1a149333ed762a7945d405076 (patch)
tree77c47b9d3ef3eb91cfb0d56ad376a3c7a94536db /src/main/stanza/ir-utils.stanza
parent36b2fa287c3931ff7eec0b18c23070cdd9f21c15 (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.stanza101
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) :