case OPCODE_NOP: return "nop";
case OPCODE_MOV: return "mov";
case OPCODE_ADD: return "add";
+ case OPCODE_IADD: return "iadd";
case OPCODE_SUB: return "sub";
+ case OPCODE_ISUB: return "isub";
case OPCODE_MAD: return "mad";
case OPCODE_MUL: return "mul";
+ case OPCODE_IMUL: return "imul";
case OPCODE_RCPX: return "rcpx";
case OPCODE_DIV: return "div";
+ case OPCODE_IDIV: return "idiv";
+ case OPCODE_UDIV: return "udiv";
case OPCODE_MOD: return "mod";
+ case OPCODE_IMOD: return "imod";
+ case OPCODE_UMOD: return "umod";
+ case OPCODE_SHL: return "shl";
+ case OPCODE_ISHR: return "ishr";
+ case OPCODE_USHR: return "ushr";
case OPCODE_RSQX: return "rsqx";
case OPCODE_SQRT: return "sqrt";
case OPCODE_RSQ: return "rsq";
case OPCODE_DP3: return "dp3";
case OPCODE_DP4: return "dp4";
case OPCODE_MIN: return "min";
+ case OPCODE_IMIN: return "imin";
+ case OPCODE_UMIN: return "umin";
case OPCODE_MAX: return "max";
+ case OPCODE_IMAX: return "imax";
+ case OPCODE_UMAX: return "umax";
case OPCODE_SLT: return "slt";
case OPCODE_SGE: return "sge";
case OPCODE_EXP2X: return "exp2x";
case OPCODE_TEXDEPTH: return "texdepth";
case OPCODE_CMP0: return "cmp0";
case OPCODE_ICMP: return "icmp";
+ case OPCODE_UCMP: return "ucmp";
case OPCODE_SELECT: return "select";
case OPCODE_EXTRACT: return "extract";
case OPCODE_INSERT: return "insert";
case OPCODE_POW: return "pow";
case OPCODE_F2B: return "f2b";
case OPCODE_B2F: return "b2f";
+ case OPCODE_F2I: return "f2i";
+ case OPCODE_I2F: return "i2f";
+ case OPCODE_F2U: return "f2u";
+ case OPCODE_U2F: return "u2f";
case OPCODE_ALL: return "all";
case OPCODE_ANY: return "any";
+ case OPCODE_NEG: return "neg";
+ case OPCODE_INEG: return "ineg";
case OPCODE_ISNAN: return "isnan";
case OPCODE_ISINF: return "isinf";
case OPCODE_NOT: return "not";
OPCODE_POW,\r
OPCODE_F2B, // Float to bool\r
OPCODE_B2F, // Bool to float\r
+ OPCODE_F2I, // Float to int\r
+ OPCODE_I2F, // Int to float\r
+ OPCODE_F2U, // Float to uint\r
+ OPCODE_U2F, // Uint to float\r
OPCODE_ALL,\r
OPCODE_ANY,\r
+ OPCODE_NEG,\r
OPCODE_NOT,\r
OPCODE_OR,\r
OPCODE_XOR,\r
OPCODE_REFRACT3,\r
OPCODE_REFRACT4,\r
OPCODE_ICMP,\r
+ OPCODE_UCMP,\r
OPCODE_SELECT,\r
OPCODE_EXTRACT,\r
OPCODE_INSERT,\r
OPCODE_LEAVE, // Return before the end of the function\r
OPCODE_CONTINUE,\r
OPCODE_TEST, // Marks the end of the code that can be skipped by 'continue'\r
+\r
+ // Integer opcodes\r
+ OPCODE_INEG,\r
+ OPCODE_IADD,\r
+ OPCODE_ISUB,\r
+ OPCODE_IMUL,\r
+ OPCODE_IDIV,\r
+ OPCODE_IMOD,\r
+ OPCODE_SHL,\r
+ OPCODE_ISHR,\r
+ OPCODE_IMIN,\r
+ OPCODE_IMAX,\r
+\r
+ // Unsigned integer opcodes\r
+ OPCODE_UDIV,\r
+ OPCODE_UMOD,\r
+ OPCODE_USHR,\r
+ OPCODE_UMIN,\r
+ OPCODE_UMAX,\r
};\r
\r
static Opcode OPCODE_DP(int);\r