Closed Bug 787343 Opened 12 years ago Closed 12 years ago

IonMonkey: LStackArgT

Categories

(Core :: JavaScript Engine, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: sstangl, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [ion:t])

Attachments

(1 file)

Attached patch patchSplinter Review
Boxing is very slow on x86_64. Doing a complicated box operation just to write that Value to the stack is silly if the type is known and the payload is 32-bit.

This saves about 5.6ms locally on SunSpider (407.5 -> 401.9), but I'm running with very old hardware, so it's entirely likely that nothing at all may happen on AWFY. Who knows. It's a good idea anyway.

(I tried V8, but it's even less stable on this Pentium 4 than it is on the i7, making it impossible to get any useful information out of it.)
Attachment #657198 - Flags: review?(dvander)
Comment on attachment 657198 [details] [diff] [review]
patch

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

::: js/src/ion/x64/MacroAssembler-x64.h
@@ +137,4 @@
>      void storeValue(const Value &val, const T &dest) {
>          jsval_layout jv = JSVAL_TO_IMPL(val);
>          movq(ImmWord(jv.asBits), ScratchReg);
> +        if (!val.isPrimitive())

This should be val.isMarkable() since strings are primitive
Attachment #657198 - Flags: review?(dvander) → review+
http://hg.mozilla.org/projects/ionmonkey/rev/16e205ba3f28
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.