Closed
Bug 814179
Opened 12 years ago
Closed 12 years ago
BaselineCompiler: Fix bitwise ops on arm
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
mozilla23
People
(Reporter: evilpie, Assigned: dougc)
References
(Blocks 2 open bugs)
Details
Attachments
(1 file)
2.60 KB,
patch
|
jandem
:
review+
|
Details | Diff | Splinter Review |
+++ This bug was initially created as a clone of Bug #811314 +++
Something is going wrong on arm. And we are missing an optimization for JSOP_URSH.
Assignee | ||
Updated•12 years ago
|
OS: Linux → All
Hardware: x86_64 → ARM
Assignee | ||
Updated•12 years ago
|
Assignee: general → dtc-moz
Assignee | ||
Comment 1•12 years ago
|
||
Attachment #739558 -
Flags: review?(jdemooij)
Comment 2•12 years ago
|
||
Comment on attachment 739558 [details] [diff] [review]
Optimize BC ARM JSOP_URSH for a double type result.
Review of attachment 739558 [details] [diff] [review]:
-----------------------------------------------------------------
Excellent, thanks! I will fix the nits, push this to Try and then land this today or tomorrow (or let me know if you have commit access and I will let you do it).
::: js/src/ion/arm/BaselineIC-arm.cpp
@@ +182,5 @@
> + Label toUint;
> + masm.j(Assembler::LessThan, &toUint);
> +
> + // Move result and box for return.
> + masm.tagValue(JSVAL_TYPE_INT32, scratchReg, R0);
Nit: this can be
masm.mov(scratchReg, R0.payloadReg());
because R0.typeReg() should still hold the int32 type tag from the LHS. On x86 we need the tagValue because the rhs operand *must* be in ecx (= R0.typeReg()) there, so we clobber it and use tagValue to restore it afterwards.
@@ +189,5 @@
> + masm.bind(&toUint);
> + masm.convertUInt32ToDouble(scratchReg, ScratchFloatReg);
> + masm.boxDouble(ScratchFloatReg, R0);
> + }
> + else {
Nit: } else {
Attachment #739558 -
Flags: review?(jdemooij) → review+
Comment 3•12 years ago
|
||
Comment 4•12 years ago
|
||
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla23
You need to log in
before you can comment on or make changes to this bug.
Description
•