Closed
Bug 1103108
Opened 10 years ago
Closed 9 years ago
Reduce the number of call paths on arm & mips32
Categories
(Core :: JavaScript Engine: JIT, defect)
Tracking
()
RESOLVED
FIXED
mozilla43
Tracking | Status | |
---|---|---|
firefox43 | --- | fixed |
People
(Reporter: mjrosenb, Assigned: nbp)
References
Details
Attachments
(4 files)
3.47 KB,
patch
|
h4writer
:
review+
|
Details | Diff | Splinter Review |
3.22 KB,
patch
|
rankov
:
review+
|
Details | Diff | Splinter Review |
4.12 KB,
patch
|
h4writer
:
review+
|
Details | Diff | Splinter Review |
2.21 KB,
patch
|
rankov
:
review+
|
Details | Diff | Splinter Review |
Currently, there is CallIon, CallIonNoPush and CallIonHalfPush. Bug 1088316 is going to change Ion to use the hardware calling convention, at which point these don't make sense, and should be removed.
Comment 1•9 years ago
|
||
It looks like removing these functions depends on changing the Ion ABI to align before the call is made, counting the possibly-pushed return address as part of the newly created frame.
Comment 2•9 years ago
|
||
FWIW, I'm going to be removing the callJitNoPush from GenerateFFIIonExit in bug 1125561; it's kindof hilarious: we worked around the old terrible ARM convention in Odin and then, when that got fixed, CallJitNoPush had to work around our dependence on the old conversion.
Assignee | ||
Comment 3•9 years ago
|
||
We don't have to use ABI-compatible calls for Ion calls, to get rid of these multiple paths. Because, there is one function which is never used (ma_callJit), and one used once (ma_callJitNoPush). These functions were used at the time when we tried to push the return address before calling the callee, but now, all the callee are pushing their link registers, both on ARM and MIPS. I have to clean-up these before refactoring all architectures Jit calls with Bug 1184965.
Assignee | ||
Updated•9 years ago
|
Summary: Reduce the number of call paths on arm → Reduce the number of call paths on arm & mips32
Assignee | ||
Comment 4•9 years ago
|
||
Attachment #8646999 -
Flags: review?(hv1989)
Assignee | ||
Comment 5•9 years ago
|
||
Attachment #8647000 -
Flags: review?(branislav.rankov)
Assignee | ||
Comment 6•9 years ago
|
||
Attachment #8647001 -
Flags: review?(hv1989)
Assignee | ||
Comment 7•9 years ago
|
||
Attachment #8647003 -
Flags: review?(branislav.rankov)
Assignee | ||
Comment 8•9 years ago
|
||
ma_callJit has to be unused, because it is pushing extra space on the stack, which does not make sense any more as all our callee are now pushing their link registers on top of the stack, and not just write in back in the reserved space, as it used to be a while ago.
Updated•9 years ago
|
Attachment #8647001 -
Flags: review?(hv1989) → review+
Comment 9•9 years ago
|
||
Comment on attachment 8646999 [details] [diff] [review] part 1 - ARM: Remove unused ma_callJit. Review of attachment 8646999 [details] [diff] [review]: ----------------------------------------------------------------- Nice. Apparently dead code removal :D. ::: js/src/jit/arm/MacroAssembler-arm.cpp @@ +1891,5 @@ > > void > MacroAssemblerARMCompat::callJit(Register callee) > { > + MOZ_ASSERT((asMasm().framePushed() & 7) == 4); what about foo % 8 = 4 instead of the & ? Seems more readable for me. Not sure if that is general. Feel free to ignore...
Attachment #8646999 -
Flags: review?(hv1989) → review+
Updated•9 years ago
|
Attachment #8647003 -
Flags: review?(branislav.rankov) → review+
Updated•9 years ago
|
Attachment #8647000 -
Flags: review?(branislav.rankov) → review+
Assignee | ||
Comment 10•9 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=e141cf07341e
Comment 11•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/0f31396bf697 https://hg.mozilla.org/integration/mozilla-inbound/rev/afd4b1a461cc https://hg.mozilla.org/integration/mozilla-inbound/rev/7047d316b864 https://hg.mozilla.org/integration/mozilla-inbound/rev/fcf151980ac3
Comment 12•9 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/0f31396bf697 https://hg.mozilla.org/mozilla-central/rev/afd4b1a461cc https://hg.mozilla.org/mozilla-central/rev/7047d316b864 https://hg.mozilla.org/mozilla-central/rev/fcf151980ac3
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
status-firefox43:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla43
You need to log in
before you can comment on or make changes to this bug.
Description
•