Closed Bug 982131 Opened 11 years ago Closed 11 years ago

OdinMonkey: GenerateFFIIonExit doesn't need to save non-volatiles

Categories

(Core :: JavaScript Engine: JIT, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 898963

People

(Reporter: luke, Assigned: bbouvier)

Details

Attachments

(1 file)

I just noticed that GenerateFFIIonExit saves non-volatile registers. Since Odin uses the same calling convention as Ion, where the callee is assumed to clobber everything, this is unnecessary.
Attached patch PatchSplinter Review
Seemed too easy, but all tests pass (and benchmarks too) so I assume it's good.
Assignee: nobody → benj
Status: NEW → ASSIGNED
Attachment #8390015 - Flags: feedback?(luke)
Comment on attachment 8390015 [details] [diff] [review] Patch Wrong flag set.
Attachment #8390015 - Flags: feedback?(luke) → review?(luke)
Comment on attachment 8390015 [details] [diff] [review] Patch Thanks!
Attachment #8390015 - Flags: review?(luke) → review+
I've ran a try build to be sure, and I am running into issues only with the ARM simulator in debug mode. Try all platforms, d/o (with another patch) https://tbpl.mozilla.org/?tree=Try&rev=fb9588c5d6f4 Try ARM simulator (only this patch): https://tbpl.mozilla.org/?tree=Try&rev=da6ef962b705 This patch only removes the push of non-volatile registers when calling from Odin into Ion. Jandem, do you have any idea of what's going on here? Do you see a better solution than ifdef'ing the removed guilty lines?
Flags: needinfo?(jdemooij)
(In reply to Benjamin Bouvier [:bbouvier] from comment #4) > Jandem, do you have any idea of what's going on here? Do you see a better > solution than ifdef'ing the removed guilty lines? Can you reproduce it locally? There's a bug somewhere that may also affect real ARM hardware (we don't run jit-tests on ARM on tbpl) and we should know what it is (ifdef'ing is sweeping it under the rug).
Flags: needinfo?(jdemooij)
Odin code has some pinned registers on the x64 and ARM that will need to be restored. The patch in bug 898963 has been updated to also avoid unnecessarily saving registers, so perhaps this could be marked as a dup or visa versa.
(In reply to Douglas Crosher [:dougc] from comment #6) > Odin code has some pinned registers on the x64 and ARM that will need to be > restored. The patch in bug 898963 has been updated to also avoid > unnecessarily saving registers, so perhaps this could be marked as a dup or > visa versa. Sure, patch in bug 898963 seems indeed more complete.
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: