projects
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
aa554d5
)
r300/compiler: fix handling of indexed temporaries in peephole
author
Marek Olšák
<maraeo@gmail.com>
Thu, 2 Sep 2010 08:21:52 +0000
(10:21 +0200)
committer
Marek Olšák
<maraeo@gmail.com>
Sat, 4 Sep 2010 16:56:22 +0000
(18:56 +0200)
src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
patch
|
blob
|
history
diff --git
a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
index a9be30706bb1e833892ff5a6856d850fb1a8f8a3..8e994671064155b899d62408ae5fec3dd50e2384 100644
(file)
--- a/
src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
+++ b/
src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
@@
-89,6
+89,12
@@
static void peephole_scan_read(void * data, struct rc_instruction * inst,
{
struct peephole_state * s = data;
+ /* XXX This could probably be handled better. */
+ if (file == RC_FILE_ADDRESS) {
+ s->Conflict = 1;
+ return;
+ }
+
if (file != RC_FILE_TEMPORARY || index != s->Mov->U.I.DstReg.Index)
return;
@@
-144,7
+150,9
@@
static void peephole(struct radeon_compiler * c, struct rc_instruction * inst_mo
{
struct peephole_state s;
- if (inst_mov->U.I.DstReg.File != RC_FILE_TEMPORARY || inst_mov->U.I.WriteALUResult)
+ if (inst_mov->U.I.DstReg.File != RC_FILE_TEMPORARY ||
+ inst_mov->U.I.DstReg.RelAddr ||
+ inst_mov->U.I.WriteALUResult)
return;
memset(&s, 0, sizeof(s));