Closed Bug 680294 Opened 13 years ago Closed 13 years ago

IonMonkey: Investigate various methods for unboxing 47-bit payloads on x64.

Categories

(Core :: JavaScript Engine, defect)

x86_64
All
defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: sstangl, Unassigned)

References

Details

IonMonkey Object unboxing (Bug 680286) requires extracting a 47-bit payload from a Value.

In JaegerMonkey (Bug 586240), we originally loaded the JSVAL_PAYLOAD_MASK into a scratch register, then performed a bitand with the Value. We eventually improved performance by keeping the JSVAL_PAYLOAD_MASK in a dedicated register.

It is unclear whether maintaining a dedicated register for this purpose would also make sense in IonMonkey, since IonMonkey should theoretically unbox less often and should be able to generate significantly better code given more available registers, now that we have real register allocation.

So we will implement loading the constant into a scratch register in Bug 680286, with the intention of re-investigating options once we can run benchmarks.
This bug is obsolete; we have good unboxing in most cases, and can fall back to the slow algorithm in the specific case when dest == src.valueReg().
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.