}
}
+static void print_omod_op(FILE * f, rc_omod_op op)
+{
+ const char * omod_str;
+
+ switch(op) {
+ case RC_OMOD_MUL_1:
+ case RC_OMOD_DISABLE:
+ return;
+ case RC_OMOD_MUL_2:
+ omod_str = "* 2";
+ break;
+ case RC_OMOD_MUL_4:
+ omod_str = "* 4";
+ break;
+ case RC_OMOD_MUL_8:
+ omod_str = "* 8";
+ break;
+ case RC_OMOD_DIV_2:
+ omod_str = "/ 2";
+ break;
+ case RC_OMOD_DIV_4:
+ omod_str = "/ 4";
+ break;
+ case RC_OMOD_DIV_8:
+ omod_str = "/ 8";
+ break;
+ default:
+ return;
+ }
+ fprintf(f, " %s", omod_str);
+}
+
static void rc_print_comparefunc(FILE * f, const char * lhs, rc_compare_func func, const char * rhs)
{
if (func == RC_COMPARE_FUNC_NEVER) {
if (opcode->HasDstReg) {
fprintf(f, " ");
rc_print_dst_register(f, inst->U.I.DstReg);
+ print_omod_op(f, inst->U.I.Omod);
if (opcode->NumSrcRegs)
fprintf(f, ",");
}
if (inst->WriteALUResult == RC_ALURESULT_X)
fprintf(f, " aluresult");
+ print_omod_op(f, inst->RGB.Omod);
+
for(unsigned int arg = 0; arg < opcode->NumSrcRegs; ++arg) {
const char* abs = inst->RGB.Arg[arg].Abs ? "|" : "";
const char* neg = inst->RGB.Arg[arg].Negate ? "-" : "";
if (inst->WriteALUResult == RC_ALURESULT_W)
fprintf(f, " aluresult");
+ print_omod_op(f, inst->Alpha.Omod);
+
for(unsigned int arg = 0; arg < opcode->NumSrcRegs; ++arg) {
const char* abs = inst->Alpha.Arg[arg].Abs ? "|" : "";
const char* neg = inst->Alpha.Arg[arg].Negate ? "-" : "";