The default bug view has changed. See this FAQ.

OSI doesn't actually work on ARM

RESOLVED FIXED

Status

()

Core
JavaScript Engine
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: mjrosenb, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

5 years ago
Created attachment 587508 [details] [diff] [review]
fix OSI on arm

This was my bad. I mis-identified all of the OSI failures as other known failures, and didn't even bother looking into them.

Problems with my implementation of OSI: the stack may be misaligned when we enter the invalidator, since on a return from JS code, the (aligned) return value is popped, and on a return from C code, the (aligned) return value is ignored.  Then, the calculation of the previous frame was wrong, since it only accounted for the padding that exists on x86.
Finally, I didn't distinguish the return slot from the return value of a function.

This patch also fixes a typo in all three implementations that ask for three arguments, but only provide two to InvalidationBailout.
Attachment #587508 - Flags: review?(christopher.leary)
Comment on attachment 587508 [details] [diff] [review]
fix OSI on arm

Review of attachment 587508 [details] [diff] [review]:
-----------------------------------------------------------------

::: js/src/ion/arm/Bailouts-arm.cpp
@@ +170,2 @@
>      }
> +  public:

Useless label?
Attachment #587508 - Flags: review?(christopher.leary) → review+
(Reporter)

Updated

5 years ago
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.