Commit c4b57f53 by Alexis Hetu Committed by Alexis Hétu

New opcodes for integer operations

Opcodes for soon to be added integer operations such as: - Conversions to/from float - Negate - Comparison - Add, Sub, Mul, Div, Mod - Left Shift, Right Shift - Min, Max Change-Id: I16af0423fdb210a558ad293e0e043176bde1c9ee Reviewed-on: https://swiftshader-review.googlesource.com/3889Tested-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent 56dd42fb
......@@ -735,12 +735,22 @@ namespace sw
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";
......@@ -754,7 +764,11 @@ namespace sw
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";
......@@ -835,6 +849,7 @@ namespace sw
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";
......@@ -894,8 +909,14 @@ namespace sw
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";
......
......@@ -180,8 +180,13 @@ namespace sw
OPCODE_POW,
OPCODE_F2B, // Float to bool
OPCODE_B2F, // Bool to float
OPCODE_F2I, // Float to int
OPCODE_I2F, // Int to float
OPCODE_F2U, // Float to uint
OPCODE_U2F, // Uint to float
OPCODE_ALL,
OPCODE_ANY,
OPCODE_NEG,
OPCODE_NOT,
OPCODE_OR,
OPCODE_XOR,
......@@ -213,6 +218,7 @@ namespace sw
OPCODE_REFRACT3,
OPCODE_REFRACT4,
OPCODE_ICMP,
OPCODE_UCMP,
OPCODE_SELECT,
OPCODE_EXTRACT,
OPCODE_INSERT,
......@@ -221,6 +227,25 @@ namespace sw
OPCODE_LEAVE, // Return before the end of the function
OPCODE_CONTINUE,
OPCODE_TEST, // Marks the end of the code that can be skipped by 'continue'
// Integer opcodes
OPCODE_INEG,
OPCODE_IADD,
OPCODE_ISUB,
OPCODE_IMUL,
OPCODE_IDIV,
OPCODE_IMOD,
OPCODE_SHL,
OPCODE_ISHR,
OPCODE_IMIN,
OPCODE_IMAX,
// Unsigned integer opcodes
OPCODE_UDIV,
OPCODE_UMOD,
OPCODE_USHR,
OPCODE_UMIN,
OPCODE_UMAX,
};
static Opcode OPCODE_DP(int);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment