@@ -55,9 +55,7 @@ class isStackOut<DstMode dst> {
5555 !eq(dst, DstStackAbsolute));
5656}
5757
58- class OpcodeEncoding<bits<4> val> {
59- bits<4> Value = val;
60-
58+ class OpcodeEncoding {
6159 bits<11> SrcMultiplier = 0; // No in_any operand by default.
6260 bits<11> DstMultiplier = 0; // No out_any operand by default.
6361
@@ -67,23 +65,23 @@ class OpcodeEncoding<bits<4> val> {
6765 // the beginning of InOperandList.
6866}
6967
70- def DirectEncoding : OpcodeEncoding<0> ; // opcode ⇒ opcode
68+ def DirectEncoding : OpcodeEncoding; // opcode ⇒ opcode
7169let SrcMultiplier = 4, DstMultiplier = 1, IndexOfStackDstUse = 2 in
72- def NopEncoding : OpcodeEncoding<1> ; // opcode src dst ⇒ opcode + 4 × src + 1 × dst
70+ def NopEncoding : OpcodeEncoding; // opcode src dst ⇒ opcode + 4 × src + 1 × dst
7371let SrcMultiplier = 8, DstMultiplier = 2, IndexOfStackDstUse = 2 in
74- def ArithCommEncoding : OpcodeEncoding<2> ; // opcode src dst set_flags ⇒ opcode + 8 × src + 2 × dst + set_flags
72+ def ArithCommEncoding : OpcodeEncoding; // opcode src dst set_flags ⇒ opcode + 8 × src + 2 × dst + set_flags
7573let SrcMultiplier = 16, DstMultiplier = 4, IndexOfStackDstUse = 2 in
76- def ArithNCommEncoding : OpcodeEncoding<3> ; // opcode src dst swap set_flags ⇒ opcode + 16 × src + 4 × dst + 2 × set_flags + swap
74+ def ArithNCommEncoding : OpcodeEncoding; // opcode src dst swap set_flags ⇒ opcode + 16 × src + 4 × dst + 2 × set_flags + swap
7775let SrcMultiplier = 8, DstMultiplier = 2, IndexOfStackDstUse = 2 in
78- def ArithPtrEncoding : OpcodeEncoding<4> ; // opcode src dst swap ⇒ opcode + 8 × src + 2 × dst + swap
79- def FarCallEncoding : OpcodeEncoding<5> ; // opcode is_shard is_static ⇒ opcode + 2 × is_static + is_shard
80- def RetEncoding : OpcodeEncoding<6> ; // opcode to_label ⇒ opcode + to_label
76+ def ArithPtrEncoding : OpcodeEncoding; // opcode src dst swap ⇒ opcode + 8 × src + 2 × dst + swap
77+ def FarCallEncoding : OpcodeEncoding; // opcode is_shard is_static ⇒ opcode + 2 × is_static + is_shard
78+ def RetEncoding : OpcodeEncoding; // opcode to_label ⇒ opcode + to_label
8179let SrcMultiplier = 1 in
82- def JumpEncoding : OpcodeEncoding<7> ; // opcode src ⇒ opcode + 1 × src
83- def LoadPtrEncoding : OpcodeEncoding<8> ; // opcode inc ⇒ opcode + inc
84- def HeapOpEncoding : OpcodeEncoding<9> ; // opcode src_special inc ⇒ opcode + 10 × src_special + inc
85- def LogEncoding : OpcodeEncoding<10>; // opcode is_first ⇒ opcode + is_first
86- def StaticOpEncoding : OpcodeEncoding<11>; // opcode src_special inc ⇒ opcode + 2 × src_special + inc
80+ def JumpEncoding : OpcodeEncoding; // opcode src ⇒ opcode + 1 × src
81+ def LoadPtrEncoding : OpcodeEncoding; // opcode inc ⇒ opcode + inc
82+ def HeapOpEncoding : OpcodeEncoding; // opcode src_special inc ⇒ opcode + 10 × src_special + inc
83+ def LogEncoding : OpcodeEncoding; // opcode is_first ⇒ opcode + is_first
84+ def StaticOpEncoding : OpcodeEncoding; // opcode src_special inc ⇒ opcode + 2 × src_special + inc
8785
8886class ArithOpcEncoder<OpcodeEncoding encoding, bits<11> BaseOpcode,
8987 SrcMode src, DstMode dst,
0 commit comments