diff options
author | Tom Stellard <[email protected]> | 2011-10-01 15:22:24 -0700 |
---|---|---|
committer | Tom Stellard <[email protected]> | 2011-10-02 15:21:15 -0700 |
commit | d64c6d2ffc086bde7a025269b80c0980f7d908f1 (patch) | |
tree | 1217548ef93e5e16d0562d6097ed8a331d0c0093 /src/mesa/program | |
parent | 13814b0103812adbb5aba0dba4664249e8566290 (diff) |
r300/compiler: Fix error in OMOD optimization
Classic compiler mistake. In the example below, the OMOD optimization
was combining instructions 4 and 10, but since there was an instruction
(#8) in between them that wrote to the same registers as instruction 10,
instruction 11 was reading the wrong value.
Example of the mistake:
Before OMOD:
4: MAD temp[0].y, temp[3]._y__, const[0]._x__, const[0]._y__;
...
8: ADD temp[2].x, temp[1].x___, -temp[4].x___;
...
10: MUL temp[2].x, const[1].y___, temp[0].y___;
11: FRC temp[5].x, temp[2].x___;
After OMOD:
4: MAD temp[2].x / 8, temp[3]._y__, const[0]._x__, const[0]._y__;
...
8: ADD temp[2].x, temp[1].x___, -temp[4].x___;
...
11: FRC temp[5].x, temp[2].x___;
https://bugs.freedesktop.org/show_bug.cgi?id=41367
Diffstat (limited to 'src/mesa/program')
0 files changed, 0 insertions, 0 deletions