Closed Bug 816015 Opened 12 years ago Closed 12 years ago

IonMonkey: Make ARM's second scratch register configurable

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla20

People

(Reporter: jandem, Assigned: jandem)

References

Details

Attachments

(1 file, 1 obsolete file)

Some macro-assembler methods use lr as scratch. This doesn't work well with the baseline compiler's IC stubs since lr holds the return address. Simplest fix for now is to make it configurable, so that Ion can keep using lr and baseline can set it to one of the unused registers.
Attached patch Patch for inbound (obsolete) (deleted) — Splinter Review
Attachment #686053 - Flags: review?(mrosenberg)
Attached patch Patch for inbound (deleted) — Splinter Review
Attachment #686055 - Flags: review?(mrosenberg)
Attachment #686053 - Attachment is obsolete: true
Attachment #686053 - Flags: review?(mrosenberg)
Comment on attachment 686055 [details] [diff] [review] Patch for inbound Review of attachment 686055 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/ion/arm/MacroAssembler-arm.h @@ +31,5 @@ > + // defaults to lr, since it's non-allocatable (as it can be clobbered by some > + // instructions). Allow the baseline compiler to override this though, since > + // baseline IC stubs rely on lr holding the return address. > + Register secondScratchReg_; > + minor nit: would it be possible to make this a const, and only set it in the constructor? Having the scratch change mid-run shouldn't affect anything, but I don't see why that would be a particularly useful ability.
Attachment #686055 - Flags: review?(mrosenberg) → review+
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla20
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: