* dst.x = floor(src.x), where dst must be an address register */
RC_OPCODE_ARL,
+ /** special instruction: load address register with round
+ * dst.x = round(src.x), where dst must be an address register */
+ RC_OPCODE_ARR,
+
/** vec4 instruction: dst.c = ceil(src0.c) */
RC_OPCODE_CEIL,
/** scalar instruction: dst = 1 / src0.x */
RC_OPCODE_RCP,
+ /** vec4 instruction: dst.c = floor(src0.c + 0.5) */
+ RC_OPCODE_ROUND,
+
/** scalar instruction: dst = 1 / sqrt(src0.x) */
RC_OPCODE_RSQ,
/** vec4 instruction: dst.c = src0.c */
RC_OPCODE_SWZ,
+ /** vec4 instruction: dst.c = (abs(src0.c) - fract(abs(src0.c))) * sgn(src0.c) */
+ RC_OPCODE_TRUNC,
+
/** special instruction, see ARB_fragment_program */
RC_OPCODE_XPD,
/** Stop execution of the shader (GLSL discard) */
RC_OPCODE_KILP,
+ /* Vertex shader CF Instructions */
+ RC_ME_PRED_SEQ,
+ RC_ME_PRED_SGT,
+ RC_ME_PRED_SGE,
+ RC_ME_PRED_SNEQ,
+ RC_ME_PRED_SET_CLR,
+ RC_ME_PRED_SET_INV,
+ RC_ME_PRED_SET_POP,
+ RC_ME_PRED_SET_RESTORE,
+
+ RC_VE_PRED_SEQ_PUSH,
+ RC_VE_PRED_SGT_PUSH,
+ RC_VE_PRED_SGE_PUSH,
+ RC_VE_PRED_SNEQ_PUSH,
+
MAX_RC_OPCODE
} rc_opcode;