projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pan/mdg: emit REGISTER_UNUSED on unused ALU src2
[mesa.git]
/
src
/
panfrost
/
midgard
/
midgard_emit.c
diff --git
a/src/panfrost/midgard/midgard_emit.c
b/src/panfrost/midgard/midgard_emit.c
index 2882fae1e9e93e5188c32dad888c53dba2e153c4..8c08818214c72e30c26ab19f4fc8653bfb19124b 100644
(file)
--- a/
src/panfrost/midgard/midgard_emit.c
+++ b/
src/panfrost/midgard/midgard_emit.c
@@
-736,15
+736,19
@@
emit_alu_bundle(compiler_context *ctx,
/* Check if this instruction has registers */
if (ins->compact_branch) continue;
/* Check if this instruction has registers */
if (ins->compact_branch) continue;
+ unsigned src2_reg = REGISTER_UNUSED;
+ if (ins->has_inline_constant)
+ src2_reg = ins->inline_constant >> 11;
+ else if (ins->src[1] != ~0)
+ src2_reg = SSA_REG_FROM_FIXED(ins->src[1]);
+
/* Otherwise, just emit the registers */
uint16_t reg_word = 0;
midgard_reg_info registers = {
.src1_reg = (ins->src[0] == ~0 ?
REGISTER_UNUSED :
SSA_REG_FROM_FIXED(ins->src[0])),
/* Otherwise, just emit the registers */
uint16_t reg_word = 0;
midgard_reg_info registers = {
.src1_reg = (ins->src[0] == ~0 ?
REGISTER_UNUSED :
SSA_REG_FROM_FIXED(ins->src[0])),
- .src2_reg = (ins->src[1] == ~0 ?
- ins->inline_constant >> 11 :
- SSA_REG_FROM_FIXED(ins->src[1])),
+ .src2_reg = src2_reg,
.src2_imm = ins->has_inline_constant,
.out_reg = (ins->dest == ~0 ?
REGISTER_UNUSED :
.src2_imm = ins->has_inline_constant,
.out_reg = (ins->dest == ~0 ?
REGISTER_UNUSED :