Closed Bug 657220 Opened 13 years ago Closed 11 years ago

JM+TI: don't break FP registers before stores

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: bhackett1024, Unassigned)

References

(Blocks 1 open bug)

Details

Before IC'ed setprops or setelems with an RHS in an FP register, we break the FP register into two normal registers before doing the store. This is silly and should get fixed.
Partial patch, allows ValueRemat to represent values in FP registers and allows setelem_dense and the inlined Array.push to use them, but still breaks FP registers before IC'ed SETPROP or SETELEM. I tried getting SETPROP to do this but force a stub generation (rather than use the inline path), but doing this slowed things down significantly. The inline paths would need to be updated to handle this case but getting the baked-in offsets right looks tricky. http://hg.mozilla.org/projects/jaegermonkey/rev/55438ad5632e
Hmm, this busted ARM as the ARM assembler doesn't have functionality to store an FP register to a BaseIndex. This is easy enough to fix by keeping the old behavior on ARM, but if this is just a gap in the assembler and not the actual instruction set (no clue) then such a fix creates a performance problem that would be hard to fix later. (This patch speeds up storing doubles to a constant array index by about 60%).
JM was removed.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.