1 // OPCODE negated swaped float arity
, flags
3 OPCODE(BADOP
, BADOP
, BADOP
, BADOP
, 0, OPF_NONE
)
6 OPCODE(ENTRY
, BADOP
, BADOP
, BADOP
, 0, OPF_NONE
)
9 OPCODE(RET
, BADOP
, BADOP
, BADOP
, 1, OPF_NONE
)
10 OPCODE(BR
, BADOP
, BADOP
, BADOP
, 0, OPF_NONE
)
11 OPCODE(CBR
, BADOP
, BADOP
, BADOP
, 1, OPF_NONE
)
12 OPCODE(SWITCH
, BADOP
, BADOP
, BADOP
, 1, OPF_NONE
)
13 OPCODE(UNREACH
, BADOP
, BADOP
, BADOP
, 0, OPF_NONE
)
14 OPCODE(COMPUTEDGOTO
, BADOP
, BADOP
, BADOP
, 1, OPF_NONE
)
15 OPCODE_RANGE(TERMINATOR
, RET
, COMPUTEDGOTO
)
18 OPCODE(ADD
, BADOP
, BADOP
, FADD
, 2, OPF_TARGET
)
19 OPCODE(SUB
, BADOP
, BADOP
, FSUB
, 2, OPF_TARGET
)
20 OPCODE(MUL
, BADOP
, BADOP
, FMUL
, 2, OPF_TARGET
)
21 OPCODE(DIVU
, BADOP
, BADOP
, FDIV
, 2, OPF_TARGET
)
22 OPCODE(DIVS
, BADOP
, BADOP
, FDIV
, 2, OPF_TARGET
)
23 OPCODE(MODU
, BADOP
, BADOP
, BADOP
, 2, OPF_TARGET
)
24 OPCODE(MODS
, BADOP
, BADOP
, BADOP
, 2, OPF_TARGET
)
25 OPCODE(SHL
, BADOP
, BADOP
, BADOP
, 2, OPF_TARGET
)
26 OPCODE(LSR
, BADOP
, BADOP
, BADOP
, 2, OPF_TARGET
)
27 OPCODE(ASR
, BADOP
, BADOP
, BADOP
, 2, OPF_TARGET
)
29 /* Floating
-point binops
*/
30 OPCODE(FADD
, BADOP
, BADOP
, BADOP
, 2, OPF_TARGET
)
31 OPCODE(FSUB
, BADOP
, BADOP
, BADOP
, 2, OPF_TARGET
)
32 OPCODE(FMUL
, BADOP
, BADOP
, BADOP
, 2, OPF_TARGET
)
33 OPCODE(FDIV
, BADOP
, BADOP
, BADOP
, 2, OPF_TARGET
)
36 OPCODE(AND_BOOL
, BADOP
, BADOP
, BADOP
, 2, OPF_TARGET
)
37 OPCODE(OR_BOOL
, BADOP
, BADOP
, BADOP
, 2, OPF_TARGET
)
38 OPCODE(AND, BADOP
, BADOP
, BADOP
, 2, OPF_TARGET
)
39 OPCODE(OR, BADOP
, BADOP
, BADOP
, 2, OPF_TARGET
)
40 OPCODE(XOR
, BADOP
, BADOP
, BADOP
, 2, OPF_TARGET
)
41 OPCODE_RANGE(BINARY
, ADD
, XOR
)
43 /* floating
-point comparison
*/
44 OPCODE(FCMP_ORD
, FCMP_UNO
, FCMP_ORD
, BADOP
, 2, OPF_TARGET
)
45 OPCODE(FCMP_OEQ
, FCMP_UNE
, FCMP_OEQ
, BADOP
, 2, OPF_TARGET
)
46 OPCODE(FCMP_ONE
, FCMP_UEQ
, FCMP_ONE
, BADOP
, 2, OPF_TARGET
)
47 OPCODE(FCMP_UEQ
, FCMP_ONE
, FCMP_UEQ
, BADOP
, 2, OPF_TARGET
)
48 OPCODE(FCMP_UNE
, FCMP_OEQ
, FCMP_UNE
, BADOP
, 2, OPF_TARGET
)
49 OPCODE(FCMP_OLT
, FCMP_UGE
, FCMP_OGT
, BADOP
, 2, OPF_TARGET
)
50 OPCODE(FCMP_OLE
, FCMP_UGT
, FCMP_OGE
, BADOP
, 2, OPF_TARGET
)
51 OPCODE(FCMP_OGE
, FCMP_ULT
, FCMP_OLE
, BADOP
, 2, OPF_TARGET
)
52 OPCODE(FCMP_OGT
, FCMP_ULE
, FCMP_OLT
, BADOP
, 2, OPF_TARGET
)
53 OPCODE(FCMP_ULT
, FCMP_OGE
, FCMP_UGT
, BADOP
, 2, OPF_TARGET
)
54 OPCODE(FCMP_ULE
, FCMP_OGT
, FCMP_UGE
, BADOP
, 2, OPF_TARGET
)
55 OPCODE(FCMP_UGE
, FCMP_OLT
, FCMP_ULE
, BADOP
, 2, OPF_TARGET
)
56 OPCODE(FCMP_UGT
, FCMP_OLE
, FCMP_ULT
, BADOP
, 2, OPF_TARGET
)
57 OPCODE(FCMP_UNO
, FCMP_ORD
, FCMP_UNO
, BADOP
, 2, OPF_TARGET
)
58 OPCODE_RANGE(FPCMP
, FCMP_ORD
, FCMP_UNO
)
60 /* Binary comparison
*/
61 OPCODE(SET_EQ
, SET_NE
, SET_EQ
, FCMP_OEQ
, 2, OPF_TARGET
)
62 OPCODE(SET_LT
, SET_GE
, SET_GT
, FCMP_OLT
, 2, OPF_TARGET
)
63 OPCODE(SET_LE
, SET_GT
, SET_GE
, FCMP_OLE
, 2, OPF_TARGET
)
64 OPCODE(SET_GE
, SET_LT
, SET_LE
, FCMP_OGE
, 2, OPF_TARGET
)
65 OPCODE(SET_GT
, SET_LE
, SET_LT
, FCMP_OGT
, 2, OPF_TARGET
)
66 OPCODE(SET_B
, SET_AE
, SET_A
, FCMP_OLT
, 2, OPF_TARGET
)
67 OPCODE(SET_BE
, SET_A
, SET_AE
, FCMP_OLE
, 2, OPF_TARGET
)
68 OPCODE(SET_AE
, SET_B
, SET_BE
, FCMP_OGE
, 2, OPF_TARGET
)
69 OPCODE(SET_A
, SET_BE
, SET_B
, FCMP_OGT
, 2, OPF_TARGET
)
70 OPCODE(SET_NE
, SET_EQ
, SET_NE
, FCMP_UNE
, 2, OPF_TARGET
)
71 OPCODE_RANGE(BINCMP
, SET_EQ
, SET_NE
)
74 OPCODE(NOT, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
75 OPCODE(NEG
, BADOP
, BADOP
, FNEG
, 1, OPF_TARGET
)
76 OPCODE(FNEG
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
77 OPCODE(TRUNC, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
78 OPCODE(ZEXT
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
79 OPCODE(SEXT
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
80 OPCODE(FCVTU
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
81 OPCODE(FCVTS
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
82 OPCODE(UCVTF
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
83 OPCODE(SCVTF
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
84 OPCODE(FCVTF
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
85 OPCODE(UTPTR
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
86 OPCODE(PTRTU
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
87 OPCODE(PTRCAST
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
88 OPCODE_RANGE(UNOP
, NOT, PTRCAST
)
89 OPCODE(SYMADDR
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
90 OPCODE(SLICE
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
92 /* Select
- three input values
*/
93 OPCODE(SEL
, BADOP
, BADOP
, BADOP
, 3, OPF_TARGET
)
96 OPCODE(LOAD
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
97 OPCODE(STORE
, BADOP
, BADOP
, BADOP
, 1, OPF_NONE
)
100 OPCODE(PHISOURCE
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
101 OPCODE(PHI
, BADOP
, BADOP
, BADOP
, 0, OPF_TARGET
)
102 OPCODE(SETVAL
, BADOP
, BADOP
, BADOP
, 0, OPF_TARGET
)
103 OPCODE(SETFVAL
, BADOP
, BADOP
, BADOP
, 0, OPF_TARGET
)
104 OPCODE(CALL
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)
105 OPCODE(INLINED_CALL
, BADOP
, BADOP
, BADOP
, 0, OPF_NONE
)
106 OPCODE(NOP
, BADOP
, BADOP
, BADOP
, 0, OPF_NONE
)
107 OPCODE(DEATHNOTE
, BADOP
, BADOP
, BADOP
, 0, OPF_NONE
)
108 OPCODE(ASM
, BADOP
, BADOP
, BADOP
, 0, OPF_NONE
)
110 /* Sparse
tagging (line numbers
, context
, whatever
) */
111 OPCODE(CONTEXT
, BADOP
, BADOP
, BADOP
, 0, OPF_NONE
)
112 OPCODE(RANGE
, BADOP
, BADOP
, BADOP
, 3, OPF_NONE
)
114 /* Needed to translate SSA back to normal form
*/
115 OPCODE(COPY
, BADOP
, BADOP
, BADOP
, 1, OPF_TARGET
)