aboutsummaryrefslogtreecommitdiff
path: root/src/main/stanza/ir-parser.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-parser.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-parser.stanza')
-rw-r--r--src/main/stanza/ir-parser.stanza90
1 files changed, 82 insertions, 8 deletions
diff --git a/src/main/stanza/ir-parser.stanza b/src/main/stanza/ir-parser.stanza
index 34dbcec7..43383f9a 100644
--- a/src/main/stanza/ir-parser.stanza
+++ b/src/main/stanza/ir-parser.stanza
@@ -157,24 +157,98 @@ rd.defsyntax firrtl :
val operators = HashTable<Symbol, PrimOp>(symbol-hash)
operators[`add] = ADD-OP
- operators[`add-mod] = ADD-MOD-OP
+ operators[`add-uu] = ADD-UU-OP
+ operators[`add-us] = ADD-US-OP
+ operators[`add-su] = ADD-SU-OP
+ operators[`add-ss] = ADD-SS-OP
operators[`sub] = SUB-OP
- operators[`sub-mod] = SUB-MOD-OP
- operators[`times] = TIMES-OP
+ operators[`sub-uu] = SUB-UU-OP
+ operators[`sub-us] = SUB-US-OP
+ operators[`sub-su] = SUB-SU-OP
+ operators[`sub-ss] = SUB-SS-OP
+ operators[`mul] = MUL-OP
+ operators[`mul-uu] = MUL-UU-OP
+ operators[`mul-us] = MUL-US-OP
+ operators[`mul-su] = MUL-SU-OP
+ operators[`mul-ss] = MUL-SS-OP
+ operators[`div] = DIV-OP
+ operators[`div-uu] = DIV-UU-OP
+ operators[`div-us] = DIV-US-OP
+ operators[`div-su] = DIV-SU-OP
+ operators[`div-ss] = DIV-SS-OP
operators[`mod] = MOD-OP
- operators[`bit-and] = BIT-AND-OP
- operators[`bit-or] = BIT-OR-OP
- operators[`bit-xor] = BIT-XOR-OP
- operators[`concat] = CONCAT-OP
+ operators[`mod-uu] = MOD-UU-OP
+ operators[`mod-us] = MOD-US-OP
+ operators[`mod-su] = MOD-SU-OP
+ operators[`mod-ss] = MOD-SS-OP
+ operators[`quo] = QUO-OP
+ operators[`quo-uu] = QUO-UU-OP
+ operators[`quo-us] = QUO-US-OP
+ operators[`quo-su] = QUO-SU-OP
+ operators[`quo-ss] = QUO-SS-OP
+ operators[`rem] = REM-OP
+ operators[`rem-uu] = REM-UU-OP
+ operators[`rem-us] = REM-US-OP
+ operators[`rem-su] = REM-SU-OP
+ operators[`rem-ss] = REM-SS-OP
+ operators[`add-wrap] = ADD-WRAP-OP
+ operators[`add-wrap-uu] = ADD-WRAP-UU-OP
+ operators[`add-wrap-us] = ADD-WRAP-US-OP
+ operators[`add-wrap-su] = ADD-WRAP-SU-OP
+ operators[`add-wrap-ss] = ADD-WRAP-SS-OP
+ operators[`sub-wrap] = SUB-WRAP-OP
+ operators[`sub-wrap-uu] = SUB-WRAP-UU-OP
+ operators[`sub-wrap-us] = SUB-WRAP-US-OP
+ operators[`sub-wrap-su] = SUB-WRAP-SU-OP
+ operators[`sub-wrap-ss] = SUB-WRAP-SS-OP
operators[`less] = LESS-OP
+ operators[`less-uu] = LESS-UU-OP
+ operators[`less-us] = LESS-US-OP
+ operators[`less-su] = LESS-SU-OP
+ operators[`less-ss] = LESS-SS-OP
operators[`less-eq] = LESS-EQ-OP
+ operators[`less-eq-uu] = LESS-EQ-UU-OP
+ operators[`less-eq-us] = LESS-EQ-US-OP
+ operators[`less-eq-su] = LESS-EQ-SU-OP
+ operators[`less-eq-ss] = LESS-EQ-SS-OP
operators[`greater] = GREATER-OP
+ operators[`greater-uu] = GREATER-UU-OP
+ operators[`greater-us] = GREATER-US-OP
+ operators[`greater-su] = GREATER-SU-OP
+ operators[`greater-ss] = GREATER-SS-OP
operators[`greater-eq] = GREATER-EQ-OP
+ operators[`greater-eq-uu] = GREATER-EQ-UU-OP
+ operators[`greater-eq-us] = GREATER-EQ-US-OP
+ operators[`greater-eq-su] = GREATER-EQ-SU-OP
+ operators[`greater-eq-ss] = GREATER-EQ-SS-OP
operators[`equal] = EQUAL-OP
- operators[`multiplex] = MULTIPLEX-OP
+ operators[`equal-uu] = EQUAL-UU-OP
+ operators[`equal-ss] = EQUAL-SS-OP
+ operators[`mux] = MUX-OP
+ operators[`mux-uu] = MUX-UU-OP
+ operators[`mux-ss] = MUX-SS-OP
operators[`pad] = PAD-OP
+ operators[`pad-u] = PAD-U-OP
+ operators[`pad-s] = PAD-S-OP
+ operators[`as-UInt] = AS-UINT-OP
+ operators[`as-UInt-u] = AS-UINT-U-OP
+ operators[`as-UInt-s] = AS-UINT-S-OP
+ operators[`as-SInt] = AS-SINT-OP
+ operators[`as-SInt-u] = AS-SINT-U-OP
+ operators[`as-SInt-s] = AS-SINT-S-OP
operators[`shift-left] = SHIFT-LEFT-OP
+ operators[`shift-left-u] = SHIFT-LEFT-U-OP
+ operators[`shift-left-s] = SHIFT-LEFT-S-OP
operators[`shift-right] = SHIFT-RIGHT-OP
+ operators[`shift-right-u] = SHIFT-RIGHT-U-OP
+ operators[`shift-right-s] = SHIFT-RIGHT-S-OP
+ operators[`convert] = SHIFT-RIGHT-OP
+ operators[`convert-u] = SHIFT-RIGHT-U-OP
+ operators[`convert-s] = SHIFT-RIGHT-S-OP
+ operators[`bit-and] = BIT-AND-OP
+ operators[`bit-or] = BIT-OR-OP
+ operators[`bit-xor] = BIT-XOR-OP
+ operators[`concat] = CONCAT-OP
operators[`bit] = BIT-SELECT-OP
operators[`bits] = BITS-SELECT-OP