Closed Bug 1046161 Opened 8 years ago Closed 8 years ago

IonMonkey MIPS: Port latest changes in AsmJSFramIterator to MIPS

Categories

(Core :: JavaScript Engine: JIT, defect)

Other
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla34

People

(Reporter: rankov, Assigned: rankov)

Details

Attachments

(1 file, 1 obsolete file)

Latest changes in AsmJSFramIterator.cpp break MIPS build. They need to be ported to MIPS.
Assignee: nobody → branislav.rankov
Status: NEW → ASSIGNED
Attached patch AsmJSFrameIterator.patch (obsolete) — Splinter Review
Attachment #8464751 - Flags: review?(luke)
Comment on attachment 8464751 [details] [diff] [review]
AsmJSFrameIterator.patch

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

::: js/src/jit/AsmJSFrameIterator.cpp
@@ +517,5 @@
>              callerFP_ = fp;
>              AssertMatchesCallSite(*module_, codeRange, callerPC_, callerFP_, sp - 2);
>          } else
> +#elif defined(JS_CODEGEN_MIPS)
> +        MOZ_ASSUME_UNREACHABLE("NYI");

ooc, why doesn't the ARM path work for MIPS?

::: js/src/jit/AsmJSModule.cpp
@@ +1610,5 @@
> +#elif defined(JS_CODEGEN_MIPS)
> +        Assembler::WriteLuiOriInstructions(instr, instr->next(),
> +                                           ScratchRegister, (uint32_t)newCallee);
> +        instr[2] = InstReg(op_special, ScratchRegister, zero, ra, ff_jalr);
> +        AutoFlushICache::flush(uintptr_t(instr), 3 * sizeof(uint32_t));

Can you reuse the same AutoFlushICache that ARM has that is declared higher up (and just flushes the entire module's code)?
(In reply to Luke Wagner [:luke] from comment #2)
> Comment on attachment 8464751 [details] [diff] [review]
> AsmJSFrameIterator.patch
> 
> Review of attachment 8464751 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> ::: js/src/jit/AsmJSFrameIterator.cpp
> @@ +517,5 @@
> >              callerFP_ = fp;
> >              AssertMatchesCallSite(*module_, codeRange, callerPC_, callerFP_, sp - 2);
> >          } else
> > +#elif defined(JS_CODEGEN_MIPS)
> > +        MOZ_ASSUME_UNREACHABLE("NYI");
> 
> ooc, why doesn't the ARM path work for MIPS?

I haven't implemented SingleStepCallback yet. Now that I look at it, it should work. On MIPS 'lr' is called 'ra', but that shouldn't be a problem.
Attachment #8464751 - Attachment is obsolete: true
Attachment #8464751 - Flags: review?(luke)
Attachment #8464817 - Flags: review?(luke)
Comment on attachment 8464817 [details] [diff] [review]
AsmJSFrameIterator.patch

Great!
Attachment #8464817 - Flags: review?(luke) → review+
https://hg.mozilla.org/mozilla-central/rev/6f9baccd7e74
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
You need to log in before you can comment on or make changes to this bug.