Closed
Bug 722688
Opened 13 years ago
Closed 13 years ago
asm_store64 LIR_std2f cannot have scratch rt == value rv
Categories
(Tamarin Graveyard :: Baseline JIT (CodegenLIR), defect, P1)
Tracking
(Not tracked)
RESOLVED
FIXED
Q1 12 - Brannan
People
(Reporter: pnkfelix, Assigned: wmaddox)
References
Details
(Whiteboard: WE:3097935)
Attachments
(1 file)
1.04 KB,
patch
|
edwsmith
:
review+
|
Details | Diff | Splinter Review |
if (rmask(rv) & XmmRegs) {
// need a scratch reg
- Register rt = registerAllocTmp(XmmRegs);
+ Register rt = registerAllocTmp(XmmRegs & ~rmask(rv));
Reporter | ||
Updated•13 years ago
|
Whiteboard: WE:3097935
Reporter | ||
Comment 1•13 years ago
|
||
Comment 2•13 years ago
|
||
This bug impacts the LIR_std2f instruction which is used to implement the ABC opcode OP_sf32 (truncate double to float then store). In code sequences with heavy register pressure, the scratch register used could be the same as the one holding the value, which wrongly sets the stored value to zero.
Updated•13 years ago
|
Attachment #593080 -
Flags: review+
Comment 3•13 years ago
|
||
changeset: 7175:65e07c19b309
user: Felix S Klock II <fklockii>
summary: Bug 722688 - asm_store64 LIR_std2f cannot have scratch rt == value rv (r=edwsmith+)
http://hg.mozilla.org/tamarin-redux/rev/65e07c19b309
Comment 4•13 years ago
|
||
targetting Brannan, leaving open until it lands in all the right places. mainline is done.
Priority: -- → P1
Target Milestone: --- → Q1 12 - Brannan
Updated•13 years ago
|
Assignee: nobody → wmaddox
Comment 5•13 years ago
|
||
I confirmed the bug is fixed by building FRR and running the dungeon testcase.
Assignee | ||
Comment 6•13 years ago
|
||
FRMain CL 1027760
Brannan CL 1027757
Assignee | ||
Comment 7•13 years ago
|
||
Reporter | ||
Updated•13 years ago
|
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•