diff options
| author | azidar | 2015-05-18 16:04:58 -0700 |
|---|---|---|
| committer | azidar | 2015-05-18 16:04:58 -0700 |
| commit | 3336e6beb23e1ba883097eac0c0000269bf8ebfa (patch) | |
| tree | c97d9ba8d0e50476e2d32a150fe401cc7413cff8 /src/main/stanza/ir-parser.stanza | |
| parent | 2702e571040e7a07317b79f9c5cfdbd61b9ab2bf (diff) | |
Big API Change. Pad is no longer supported. Widths of primops can be flexible, and the output is usually the max of the inputs. Removed all u/s variants, which need to be dealt with in backends where it matters
Diffstat (limited to 'src/main/stanza/ir-parser.stanza')
| -rw-r--r-- | src/main/stanza/ir-parser.stanza | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/src/main/stanza/ir-parser.stanza b/src/main/stanza/ir-parser.stanza index 15cc497a..0833543f 100644 --- a/src/main/stanza/ir-parser.stanza +++ b/src/main/stanza/ir-parser.stanza @@ -32,106 +32,30 @@ defn atom? (x) : unwrap-token(x) not-typeof List defn primop (x:Symbol) : get?(OPERATORS, x, false) val OPERATORS = HashTable<Symbol, PrimOp>(symbol-hash) OPERATORS[`add] = ADD-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-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[`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[`lt] = LESS-OP -OPERATORS[`lt-uu] = LESS-UU-OP -OPERATORS[`lt-us] = LESS-US-OP -OPERATORS[`lt-su] = LESS-SU-OP -OPERATORS[`lt-ss] = LESS-SS-OP OPERATORS[`leq] = LESS-EQ-OP -OPERATORS[`leq-uu] = LESS-EQ-UU-OP -OPERATORS[`leq-us] = LESS-EQ-US-OP -OPERATORS[`leq-su] = LESS-EQ-SU-OP -OPERATORS[`leq-ss] = LESS-EQ-SS-OP OPERATORS[`gt] = GREATER-OP -OPERATORS[`gt-uu] = GREATER-UU-OP -OPERATORS[`gt-us] = GREATER-US-OP -OPERATORS[`gt-su] = GREATER-SU-OP -OPERATORS[`gt-ss] = GREATER-SS-OP OPERATORS[`geq] = GREATER-EQ-OP -OPERATORS[`geq-uu] = GREATER-EQ-UU-OP -OPERATORS[`geq-us] = GREATER-EQ-US-OP -OPERATORS[`geq-su] = GREATER-EQ-SU-OP -OPERATORS[`geq-ss] = GREATER-EQ-SS-OP OPERATORS[`eq] = EQUAL-OP -OPERATORS[`eq-uu] = EQUAL-UU-OP -OPERATORS[`eq-ss] = EQUAL-SS-OP OPERATORS[`neq] = NEQUAL-OP -OPERATORS[`neq-uu] = NEQUAL-UU-OP -OPERATORS[`neq-ss] = NEQUAL-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[`neg] = NEG-OP -OPERATORS[`neg-u] = NEG-U-OP -OPERATORS[`neg-s] = NEG-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[`dshl] = DYN-SHIFT-LEFT-OP -OPERATORS[`dshl-u] = DYN-SHIFT-LEFT-U-OP -OPERATORS[`dshl-s] = DYN-SHIFT-LEFT-S-OP OPERATORS[`dshr] = DYN-SHIFT-RIGHT-OP -OPERATORS[`dshr-u] = DYN-SHIFT-RIGHT-U-OP -OPERATORS[`dshr-s] = DYN-SHIFT-RIGHT-S-OP OPERATORS[`shl] = SHIFT-LEFT-OP -OPERATORS[`shl-u] = SHIFT-LEFT-U-OP -OPERATORS[`shl-s] = SHIFT-LEFT-S-OP OPERATORS[`shr] = SHIFT-RIGHT-OP -OPERATORS[`shr-u] = SHIFT-RIGHT-U-OP -OPERATORS[`shr-s] = SHIFT-RIGHT-S-OP OPERATORS[`convert] = CONVERT-OP -OPERATORS[`convert-u] = CONVERT-U-OP -OPERATORS[`convert-s] = CONVERT-S-OP OPERATORS[`bit-and-reduce] = BIT-AND-REDUCE-OP OPERATORS[`bit-or-reduce] = BIT-OR-REDUCE-OP OPERATORS[`bit-xor-reduce] = BIT-XOR-REDUCE-OP @@ -309,9 +233,6 @@ defsyntax firrtl : expterm = (Register(?v:#exp, ?e:#exp)) : Register(UnknownType(), v, e) expterm != (Register) : FPE(form, "Invalid syntax for Register expression.") - expterm = (Pad(?e:#exp, ?w:#width$)) : Pad(e,w,UnknownType()) - expterm != (Pad) : FPE(form, "Invalid syntax for Pad expression.") - expterm = (?op:#sym(?es:#exp ... ?ints:#int ... ?rest ...)) : if not empty?(rest) : FPE(rest, "Illegal operands to primitive operator.") |
