pan/bi: Add bitwise modifiers

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4790>
This commit is contained in:
Alyssa Rosenzweig 2020-04-28 13:48:37 -04:00 committed by Marge Bot
parent 6de01faac5
commit 9b415bf6a0
2 changed files with 12 additions and 0 deletions

View file

@ -206,6 +206,9 @@ bi_print_src(FILE *fp, bi_instruction *ins, unsigned s)
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)
@ -378,6 +381,8 @@ bi_print_instruction(bi_instruction *ins, FILE *fp)
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);

View file

@ -214,6 +214,11 @@ enum bi_tex_op {
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;
@ -290,6 +295,8 @@ typedef struct {
/* For BLEND -- the location 0-7 */
unsigned blend_location;
struct bi_bitwise bitwise;
};
} bi_instruction;