Closed Bug 1213749 Opened 4 years ago Closed 4 years ago

IonMonkey: MIPS64: Import SharedIC-mips64

Categories

(Core :: JavaScript Engine: JIT, defect)

Other
Linux
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla44
Tracking Status
firefox44 --- fixed

People

(Reporter: hev, Assigned: hev)

References

Details

Attachments

(1 file)

Bug 1140954, Part 10: SharedIC-mips64.
Thanks!
Attachment #8672510 - Flags: review?(nicolas.b.pierron)
Attachment #8672510 - Flags: review?(branislav.rankov)
Comment on attachment 8672510 [details] [diff] [review]
Part 10: Import SharedIC-mips64.

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

::: js/src/jit/mips64/SharedIC-mips64.cpp
@@ +163,5 @@
> +
> +    switch (op) {
> +      case JSOP_BITNOT:
> +        masm.not32(R0.valueReg());
> +        masm.tagValue(JSVAL_TYPE_INT32, R0.valueReg(), R0);

Does the not32 operation zeroed the upper part of the register on mips64?

@@ +171,5 @@
> +        // Guard against 0 and MIN_INT, both result in a double.
> +        masm.branchTest32(Assembler::Zero, ExtractTemp0, Imm32(INT32_MAX), &failure);
> +
> +        masm.neg32(ExtractTemp0);
> +        masm.tagValue(JSVAL_TYPE_INT32, ExtractTemp0, R0);

Same with neg32?
Attachment #8672510 - Flags: review?(nicolas.b.pierron) → review+
(In reply to Nicolas B. Pierron [:nbp] from comment #2)
> Comment on attachment 8672510 [details] [diff] [review]
> Part 10: Import SharedIC-mips64.
> 
> Review of attachment 8672510 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> ::: js/src/jit/mips64/SharedIC-mips64.cpp
> @@ +163,5 @@
> > +
> > +    switch (op) {
> > +      case JSOP_BITNOT:
> > +        masm.not32(R0.valueReg());
> > +        masm.tagValue(JSVAL_TYPE_INT32, R0.valueReg(), R0);
> 
> Does the not32 operation zeroed the upper part of the register on mips64?
Yes, The 32-bit value is sign-extened in register on mips64.

> 
> @@ +171,5 @@
> > +        // Guard against 0 and MIN_INT, both result in a double.
> > +        masm.branchTest32(Assembler::Zero, ExtractTemp0, Imm32(INT32_MAX), &failure);
> > +
> > +        masm.neg32(ExtractTemp0);
> > +        masm.tagValue(JSVAL_TYPE_INT32, ExtractTemp0, R0);
> 
> Same with neg32?
https://hg.mozilla.org/mozilla-central/rev/16c2a146a493
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla44
You need to log in before you can comment on or make changes to this bug.