Mesa (master): r600g: Check for relative addressing in destination register when trying to merge instruction groups
Henri Verbeet
hverbeet at kemper.freedesktop.org
Tue Mar 22 20:25:26 UTC 2011
Module: Mesa
Branch: master
Commit: 8d7c12de1e3bce6c14ed6b79b64c2bce48e560a5
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8d7c12de1e3bce6c14ed6b79b64c2bce48e560a5
Author: Fabian Bieler <der.fabe at gmx.net>
Date: Thu Mar 3 10:08:08 2011 +0100
r600g: Check for relative addressing in destination register when trying to merge instruction groups
Signed-off-by: Henri Verbeet <hverbeet at gmail.com>
---
src/gallium/drivers/r600/r600_asm.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
index 240093f..c22bd8e 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -953,10 +953,17 @@ static int merge_inst_groups(struct r600_bc *bc, struct r600_bc_alu *slots[5],
} else
result[i] = slots[i];
- // let's check source gprs
alu = slots[i];
num_once_inst += is_alu_once_inst(bc, alu);
+ // let's check dst gpr
+ if (alu->dst.rel) {
+ if (have_mova)
+ return 0;
+ have_rel = 1;
+ }
+
+ // let's check source gprs
num_src = r600_bc_get_num_operands(bc, alu);
for (src = 0; src < num_src; ++src) {
if (alu->src[src].rel) {
More information about the mesa-commit
mailing list