Closed Bug 1620997 Opened 3 months ago Closed 2 months ago

Improve IC support for JSOp::Pow

Categories

(Core :: JavaScript Engine: JIT, task, P3)

task

Tracking

()

RESOLVED FIXED
mozilla77
Tracking Status
firefox77 --- fixed

People

(Reporter: jandem, Assigned: anba)

References

(Blocks 1 open bug)

Details

Attachments

(4 files)

Unlike IonBuilder, WarpBuilder will fall back to an IC for JSOp::Pow so we need to make sure we have CacheIR support for the most interesting cases. This will also make JSOp::Pow in Baseline faster.

Priority: -- → P3

I'll try to look into this one. (I may end up dup'ing it to bug 1188079.)

Assignee: nobody → andrebargull
Status: NEW → ASSIGNED

Ugh, I can't land all of bug 1188079 (specifically part 3 shouldn't yet land), because it also requires bug 1564942.

This is an inline implementation of js::powi.

There are too few registers available on x86, so the code tries to reuse the output
operand's type register in addition to its payload register.

Pushed by rgurzau@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/815e8172ee57
Part 1: Add `pow32` to the MacroAssembler. r=jandem
https://hg.mozilla.org/integration/autoland/rev/fbbb339d3fdb
Part 2: Add JSOp::Pow support to CacheIR. r=jandem
https://hg.mozilla.org/integration/autoland/rev/9de84bcc6696
Part 3: Add Ion IC support for JSOp::Pow. r=jandem
https://hg.mozilla.org/integration/autoland/rev/0a8e055cf0ad
Part 4: Remove no longer used non-number MPow specialisation. r=jandem
Regressions: 1628267
Regressions: 1628836
You need to log in before you can comment on or make changes to this bug.