# |_| #
#--------------------------------------------------#
-# arithmetic operations
-
%nodes = (
+# arithmetic operations
+
# commutative operations
"Add" => {
"op_flags" => "C",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 2,
"args" => "DEFAULT",
"comment" => "construct Add: Add(a, b) = Add(b, a) = a + b",
},
"Add_i" => {
- "op_flags" => "C",
- "state" => "floats",
+ "op_flags" => "N",
+ "state" => "pinned",
"arity" => 1,
"args" => "DEFAULT",
"comment" => "construct Add: Add(a, const) = Add(const, a) = a + const",
"Mul" => {
"op_flags" => "C",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 2,
"args" => "DEFAULT",
"comment" => "construct Mul: Mul(a, b) = Mul(b, a) = a * b",
},
"Mul_i" => {
- "op_flags" => "C",
- "state" => "floats",
+ "op_flags" => "N",
+ "state" => "pinned",
"arity" => 1,
"args" => "DEFAULT",
"comment" => "construct Mul: Mul(a, const) = Mul(const, a) = a * const",
"And" => {
"op_flags" => "C",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 2,
"args" => "DEFAULT",
"comment" => "construct And: And(a, b) = And(b, a) = a AND b",
},
"And_i" => {
- "op_flags" => "C",
- "state" => "floats",
+ "op_flags" => "N",
+ "state" => "pinned",
"arity" => 1,
"args" => "DEFAULT",
"comment" => "construct And: And(a, const) = And(const, a) = a AND const",
"Or" => {
"op_flags" => "C",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 2,
"args" => "DEFAULT",
"comment" => "construct Or: Or(a, b) = Or(b, a) = a OR b",
},
"Or_i" => {
- "op_flags" => "C",
- "state" => "floats",
+ "op_flags" => "N",
+ "state" => "pinned",
"arity" => 1,
"args" => "DEFAULT",
"comment" => "construct Or: Or(a, const) = Or(const, a) = a OR const",
"Eor" => {
"op_flags" => "C",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 2,
"args" => "DEFAULT",
"comment" => "construct Eor: Eor(a, b) = Eor(b, a) = a EOR b",
},
"Eor_i" => {
- "op_flags" => "C",
- "state" => "floats",
+ "op_flags" => "N",
+ "state" => "pinned",
"arity" => 1,
"args" => "DEFAULT",
"comment" => "construct Eor: Eor(a, const) = Eor(const, a) = a EOR const",
"Sub" => {
"op_flags" => "N",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 2,
"args" => "DEFAULT",
"comment" => "construct Sub: Sub(a, b) = a - b",
"Sub_i" => {
"op_flags" => "N",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 1,
"args" => "DEFAULT",
"comment" => "construct Sub: Sub(a, const) = a - const",
"Mod" => {
"op_flags" => "N",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 2,
"args" => "DEFAULT",
"comment" => "construct Mod: Mod(a, b) = a % b",
"Mod_i" => {
"op_flags" => "N",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 1,
"args" => "DEFAULT",
"comment" => "construct Mod: Mod(a, const) = a % const",
"Shl" => {
"op_flags" => "N",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 2,
"args" => "DEFAULT",
"comment" => "construct Shl: Shl(a, b) = a << b",
"Shl_i" => {
"op_flags" => "N",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 1,
"args" => "DEFAULT",
"comment" => "construct Shl: Shl(a, const) = a << const",
"Shr" => {
"op_flags" => "N",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 2,
"args" => "DEFAULT",
"comment" => "construct Shr: Shr(a, b) = a >> b",
"Shr_i" => {
"op_flags" => "N",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 1,
"args" => "DEFAULT",
"comment" => "construct Shr: Shr(a, const) = a >> const",
"Shrs" => {
"op_flags" => "N",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 2,
"args" => "DEFAULT",
"comment" => "construct Shrs: Shrs(a, b) = a >> b",
"Shrs_i" => {
"op_flags" => "N",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 1,
"args" => "DEFAULT",
"comment" => "construct Shrs: Shrs(a, const) = a >> const",
"Rot" => {
"op_flags" => "N",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 2,
"args" => "DEFAULT",
"comment" => "construct Rot: Rot(a, b) = a ROT b",
"Rot_i" => {
"op_flags" => "N",
- "state" => "floats",
+ "state" => "pinned",
"arity" => 1,
"args" => "DEFAULT",
"comment" => "construct Rot: Rot(a, const) = a ROT const",
"rd_constructor" => "DEFAULT"
+},
+
+# other operations
+
+"Conv" => {
+ "op_flags" => "N",
+ "state" => "pinned",
+ "arity" => 1,
+ "args" => "DEFAULT",
+ "comment" => "construct Conv: Conv(a) = (conv)a",
+ "rd_constructor" => "DEFAULT"
+},
+
+"Cmp" => {
+ "op_flags" => "C",
+ "state" => "pinned",
+ "arity" => 2,
+ "args" => "DEFAULT",
+ "comment" => "construct Cmp: Cmp(a, b) = a CMP b",
+ "rd_constructor" => "DEFAULT"
+},
+
+"Cmp_i" => {
+ "op_flags" => "N",
+ "state" => "pinned",
+ "arity" => 1,
+ "args" => "DEFAULT",
+ "comment" => "construct Cmp: Cmp(a, const) = Cmp(const, a) = a CMP const",
+ "rd_constructor" => "DEFAULT"
+},
+
+# Load / Store
+
+"Load" => {
+ "op_flags" => "N",
+ "state" => "pinned",
+ "arity" => 2,
+ "args" => "DEFAULT",
+ "comment" => "construct Load: Load(mem-edge, ptr) = LD ptr",
+ "rd_constructor" => "DEFAULT"
+},
+
+"Store" => {
+ "op_flags" => "N",
+ "state" => "pinned",
+ "arity" => 3,
+ "args" => "DEFAULT",
+ "comment" => "construct Store: Store(mem-edge, ptr, val) = ST ptr,val",
+ "rd_constructor" => "DEFAULT"
}
); # end of %nodes