ir3: remove comp1/2 from cat0

Just take the component values from the source registers.

Signed-off-by: Job Noorman <jnoorman@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27411>
This commit is contained in:
Job Noorman
2024-02-01 14:51:18 +01:00
committed by Marge Bot
parent a720eef12d
commit 49b2fbe2f0
3 changed files with 7 additions and 8 deletions
-1
View File
@@ -360,7 +360,6 @@ struct ir3_instruction {
union {
struct {
char inv1, inv2;
char comp1, comp2;
int immed;
struct ir3_block *target;
const char *target_label;
+5 -5
View File
@@ -704,7 +704,7 @@ static void print_token(FILE *file, int type, YYSTYPE value)
%type <num> integer offset
%type <num> flut_immed
%type <flt> float
%type <reg> src dst const
%type <reg> src dst const cat0_src1 cat0_src2
%type <tok> cat1_opc
%type <tok> cat2_opc_1src cat2_opc_2src_cnd cat2_opc_2src
%type <tok> cat3_opc
@@ -845,11 +845,11 @@ instr: iflags cat0_instr
label: T_IDENTIFIER ':' { new_label($1); }
cat0_src1: '!' T_P0 { instr->cat0.inv1 = true; instr->cat0.comp1 = $2 >> 1; }
| T_P0 { instr->cat0.comp1 = $1 >> 1; }
cat0_src1: '!' T_P0 { instr->cat0.inv1 = true; $$ = new_src((62 << 3) + $2, 0); }
| T_P0 { $$ = new_src((62 << 3) + $1, 0); }
cat0_src2: '!' T_P0 { instr->cat0.inv2 = true; instr->cat0.comp2 = $2 >> 1; }
| T_P0 { instr->cat0.comp2 = $1 >> 1; }
cat0_src2: '!' T_P0 { instr->cat0.inv2 = true; $$ = new_src((62 << 3) + $2, 0); }
| T_P0 { $$ = new_src((62 << 3) + $1, 0); }
cat0_immed: '#' integer { instr->cat0.immed = $2; }
| '#' T_IDENTIFIER { ralloc_steal(instr, (void *)$2); instr->cat0.target_label = $2; }
+2 -2
View File
@@ -45,8 +45,8 @@ SOFTWARE.
<pattern low="61" high="63">000</pattern> <!-- cat0 -->
<encode>
<map name="IMMED">src->cat0.immed</map>
<map name="COMP1">src->cat0.comp1</map>
<map name="COMP2">src->cat0.comp2</map>
<map name="COMP1">reg_comp(src->srcs[0])</map>
<map name="COMP2">reg_comp(src->srcs[1])</map>
<map name="INV1">src->cat0.inv1</map>
<map name="INV2">src->cat0.inv2</map>
<map name="EQ">!!(src->flags &amp; IR3_INSTR_EQ)</map>