--- /dev/null	Sat Nov 16 11:16:22 2019
+++ new/usr/src/tools/smatch/src/opcode.def	Sat Nov 16 11:16:22 2019
@@ -0,0 +1,114 @@
+//      OPCODE          negated   swaped    float  arity, flags
+
+OPCODE(BADOP,           BADOP,    BADOP,    BADOP, 0, OPF_NONE)
+
+/* Entry */
+OPCODE(ENTRY,           BADOP,    BADOP,    BADOP, 0, OPF_NONE)
+
+/* Terminator */
+OPCODE(RET,             BADOP,    BADOP,    BADOP, 1, OPF_NONE)
+OPCODE(BR,              BADOP,    BADOP,    BADOP, 0, OPF_NONE)
+OPCODE(CBR,             BADOP,    BADOP,    BADOP, 1, OPF_NONE)
+OPCODE(SWITCH,          BADOP,    BADOP,    BADOP, 1, OPF_NONE)
+OPCODE(COMPUTEDGOTO,    BADOP,    BADOP,    BADOP, 1, OPF_NONE)
+OPCODE_RANGE(TERMINATOR, RET, COMPUTEDGOTO)
+
+/* Binary */
+OPCODE(ADD,             BADOP,    BADOP,    FADD,  2, OPF_TARGET)
+OPCODE(SUB,             BADOP,    BADOP,    FSUB,  2, OPF_TARGET)
+OPCODE(MUL,             BADOP,    BADOP,    FMUL,  2, OPF_TARGET)
+OPCODE(DIVU,            BADOP,    BADOP,    FDIV,  2, OPF_TARGET)
+OPCODE(DIVS,            BADOP,    BADOP,    FDIV,  2, OPF_TARGET)
+OPCODE(MODU,            BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
+OPCODE(MODS,            BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
+OPCODE(SHL,             BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
+OPCODE(LSR,             BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
+OPCODE(ASR,             BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
+
+/* Floating-point binops */
+OPCODE(FADD,            BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
+OPCODE(FSUB,            BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
+OPCODE(FMUL,            BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
+OPCODE(FDIV,            BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
+
+/* Logical */
+OPCODE(AND_BOOL,        BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
+OPCODE(OR_BOOL,         BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
+OPCODE(AND,             BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
+OPCODE(OR,              BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
+OPCODE(XOR,             BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
+OPCODE_RANGE(BINARY, ADD, XOR)
+
+/* floating-point comparison */
+OPCODE(FCMP_ORD,        FCMP_UNO, FCMP_ORD, BADOP, 2, OPF_TARGET)
+OPCODE(FCMP_OEQ,        FCMP_UNE, FCMP_OEQ, BADOP, 2, OPF_TARGET)
+OPCODE(FCMP_ONE,        FCMP_UEQ, FCMP_ONE, BADOP, 2, OPF_TARGET)
+OPCODE(FCMP_UEQ,        FCMP_ONE, FCMP_UEQ, BADOP, 2, OPF_TARGET)
+OPCODE(FCMP_UNE,        FCMP_OEQ, FCMP_UNE, BADOP, 2, OPF_TARGET)
+OPCODE(FCMP_OLT,        FCMP_UGE, FCMP_OGT, BADOP, 2, OPF_TARGET)
+OPCODE(FCMP_OLE,        FCMP_UGT, FCMP_OGE, BADOP, 2, OPF_TARGET)
+OPCODE(FCMP_OGE,        FCMP_ULT, FCMP_OLE, BADOP, 2, OPF_TARGET)
+OPCODE(FCMP_OGT,        FCMP_ULE, FCMP_OLT, BADOP, 2, OPF_TARGET)
+OPCODE(FCMP_ULT,        FCMP_OGE, FCMP_UGT, BADOP, 2, OPF_TARGET)
+OPCODE(FCMP_ULE,        FCMP_OGT, FCMP_UGE, BADOP, 2, OPF_TARGET)
+OPCODE(FCMP_UGE,        FCMP_OLT, FCMP_ULE, BADOP, 2, OPF_TARGET)
+OPCODE(FCMP_UGT,        FCMP_OLE, FCMP_ULT, BADOP, 2, OPF_TARGET)
+OPCODE(FCMP_UNO,        FCMP_ORD, FCMP_UNO, BADOP, 2, OPF_TARGET)
+OPCODE_RANGE(FPCMP, FCMP_ORD, FCMP_UNO)
+
+/* Binary comparison */
+OPCODE(SET_EQ,          SET_NE,   SET_EQ,   FCMP_OEQ, 2, OPF_TARGET)
+OPCODE(SET_LT,          SET_GE,   SET_GT,   FCMP_OLT, 2, OPF_TARGET)
+OPCODE(SET_LE,          SET_GT,   SET_GE,   FCMP_OLE, 2, OPF_TARGET)
+OPCODE(SET_GE,          SET_LT,   SET_LE,   FCMP_OGE, 2, OPF_TARGET)
+OPCODE(SET_GT,          SET_LE,   SET_LT,   FCMP_OGT, 2, OPF_TARGET)
+OPCODE(SET_B,           SET_AE,   SET_A,    FCMP_OLT, 2, OPF_TARGET)
+OPCODE(SET_BE,          SET_A,    SET_AE,   FCMP_OLE, 2, OPF_TARGET)
+OPCODE(SET_AE,          SET_B,    SET_BE,   FCMP_OGE, 2, OPF_TARGET)
+OPCODE(SET_A,           SET_BE,   SET_B,    FCMP_OGT, 2, OPF_TARGET)
+OPCODE(SET_NE,          SET_EQ,   SET_NE,   FCMP_UNE, 2, OPF_TARGET)
+OPCODE_RANGE(BINCMP, SET_EQ, SET_NE)
+
+/* Uni */
+OPCODE(NOT,             BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(NEG,             BADOP,    BADOP,    FNEG,  1, OPF_TARGET)
+OPCODE(FNEG,            BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(TRUNC,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(ZEXT,            BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(SEXT,            BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(FCVTU,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(FCVTS,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(UCVTF,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(SCVTF,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(FCVTF,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(UTPTR,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(PTRTU,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(PTRCAST,         BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE_RANGE(UNOP, NOT, PTRCAST)
+OPCODE(SYMADDR,         BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(SLICE,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+
+/* Select - three input values */
+OPCODE(SEL,             BADOP,    BADOP,    BADOP, 3, OPF_TARGET)
+
+/* Memory */
+OPCODE(LOAD,            BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(STORE,           BADOP,    BADOP,    BADOP, 1, OPF_NONE)
+
+/* Other */
+OPCODE(PHISOURCE,       BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(PHI,             BADOP,    BADOP,    BADOP, 0, OPF_TARGET)
+OPCODE(SETVAL,          BADOP,    BADOP,    BADOP, 0, OPF_TARGET)
+OPCODE(SETFVAL,         BADOP,    BADOP,    BADOP, 0, OPF_TARGET)
+OPCODE(CALL,            BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
+OPCODE(INLINED_CALL,    BADOP,    BADOP,    BADOP, 0, OPF_NONE)
+OPCODE(NOP,             BADOP,    BADOP,    BADOP, 0, OPF_NONE)
+OPCODE(DEATHNOTE,       BADOP,    BADOP,    BADOP, 0, OPF_NONE)
+OPCODE(ASM,             BADOP,    BADOP,    BADOP, 0, OPF_NONE)
+
+/* Sparse tagging (line numbers, context, whatever) */
+OPCODE(CONTEXT,         BADOP,    BADOP,    BADOP, 0, OPF_NONE)
+OPCODE(RANGE,           BADOP,    BADOP,    BADOP, 3, OPF_NONE)
+
+/* Needed to translate SSA back to normal form */
+OPCODE(COPY,            BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
