Clean-up various floating point conversion methods
Categories
(Core :: JavaScript Engine: JIT, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox129 | --- | fixed |
People
(Reporter: anba, Assigned: anba)
References
Details
Attachments
(19 files)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review |
Perform some clean-up in preparation for bug 1835034.
Assignee | ||
Comment 1•11 months ago
|
||
Add liveVolatileRegs
to avoid some code duplication.
Assignee | ||
Comment 2•11 months ago
|
||
Add liveVolatileRegs
to avoid some code duplication.
Assignee | ||
Comment 3•11 months ago
|
||
The issue mentioned in the comment no longer applies to CacheIR. See also bug 836000.
Depends on D215327
Assignee | ||
Comment 4•11 months ago
|
||
Depends on D215328
Assignee | ||
Comment 5•11 months ago
|
||
And avoid code duplication in MToFPInstruction sub-classes.
Depends on D215329
Assignee | ||
Comment 6•11 months ago
|
||
Depends on D215330
Assignee | ||
Comment 7•11 months ago
|
||
Also remove DISPATCH_FLOATING_POINT_OP
macro.
Depends on D215331
Assignee | ||
Comment 8•11 months ago
|
||
And change GenerateJitEntry
to avoid using ScratchTagScopeRelease
.
Depends on D215332
Assignee | ||
Comment 9•11 months ago
|
||
Depends on D215333
Assignee | ||
Comment 10•11 months ago
|
||
Code-gen changes:
-
ARM32 loaded
1.0
into the output register and conditionally subtracted the
output with itself to compute0.0
. The new code-gen uses int32-to-float
conversions instead. -
MIPS had an extra call to
convertBoolToInt32
beforeconvertInt32ToFloat32
.
It's unclear why this was performed, becauseJS::TrueValue
andJS::FalseValue
don't have any extra bits set which requireconvertBoolToInt32
. -
LOONG64 and RISCV code was copied from MIPS, so it also had the extra call to
convertBoolToInt32
.
Depends on D215334
Assignee | ||
Comment 11•11 months ago
|
||
Depends on D215335
Assignee | ||
Comment 12•11 months ago
|
||
Directly read from payloadOrValueReg
to match convertValueToFloatingPoint
,
which also saves a move in X64 and ARM64.
Depends on D215336
Assignee | ||
Comment 13•11 months ago
|
||
Depends on D215337
Assignee | ||
Comment 14•11 months ago
|
||
64, RISCV, and MIPS64 performed an additional unboxInt32
to first
move the value into a scratch register. This doesn't look necessary,
for example ARM64 directly converted the value into a double.
Depends on D215338
Assignee | ||
Comment 15•11 months ago
|
||
Depends on D215339
Assignee | ||
Comment 16•11 months ago
|
||
64, RISCV, and MIPS64 performed an additional unboxInt32
to first
move the value into a scratch register. This doesn't look necessary,
for example ARM64 directly converted the value into a double.
Depends on D215338
Assignee | ||
Comment 17•11 months ago
|
||
Depends on D215339
Assignee | ||
Comment 18•11 months ago
|
||
64, RISCV, and MIPS64 performed an additional unboxInt32
to first
move the value into a scratch register. This doesn't look necessary,
for example ARM64 directly converted the value into a double.
Depends on D215338
Assignee | ||
Comment 19•11 months ago
|
||
Depends on D215339
Comment 20•11 months ago
|
||
Comment 21•11 months ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/5c9d6193adbf
https://hg.mozilla.org/mozilla-central/rev/938c62c4b746
https://hg.mozilla.org/mozilla-central/rev/5958fa2e4e82
https://hg.mozilla.org/mozilla-central/rev/e436cecf3988
https://hg.mozilla.org/mozilla-central/rev/3b9b53aa8e11
https://hg.mozilla.org/mozilla-central/rev/6ae199d650a2
https://hg.mozilla.org/mozilla-central/rev/1fb1c737d9df
https://hg.mozilla.org/mozilla-central/rev/1f59cc9362d7
https://hg.mozilla.org/mozilla-central/rev/2333bfe3a36b
https://hg.mozilla.org/mozilla-central/rev/62e3c8983d41
https://hg.mozilla.org/mozilla-central/rev/29a868060e95
https://hg.mozilla.org/mozilla-central/rev/39f29404d94d
https://hg.mozilla.org/mozilla-central/rev/00d1a13b7fb4
https://hg.mozilla.org/mozilla-central/rev/c788f13a3a12
https://hg.mozilla.org/mozilla-central/rev/9efa1f43808a
Description
•