if (abs)
fprintf(fp, "abs(");
+ if (ins->type == BI_BITWISE && ins->bitwise.src_invert[s])
+ fprintf(fp, "~");
+
bi_print_index(fp, ins, src, s);
if (abs)
fprintf(fp, ".loc%u", ins->blend_location);
else if (ins->type == BI_TEX)
fprintf(fp, ".%s", bi_tex_op_name(ins->op.texture));
+ else if (ins->type == BI_BITWISE)
+ fprintf(fp, ".%cshift", ins->bitwise.rshift ? 'r' : 'l');
if (ins->vector_channels)
fprintf(fp, ".v%u", ins->vector_channels);
BI_TEX_DUAL
};
+struct bi_bitwise {
+ bool src_invert[2];
+ bool rshift; /* false for lshift */
+};
+
typedef struct {
struct list_head link; /* Must be first */
enum bi_class type;
/* For BLEND -- the location 0-7 */
unsigned blend_location;
+
+ struct bi_bitwise bitwise;
};
} bi_instruction;