Random ARM64 fixes
Categories
(Core :: JavaScript: WebAssembly, defect, P3)
Tracking
()
People
(Reporter: lth, Assigned: lth)
References
Details
Attachments
(8 files, 1 obsolete file)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 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 |
Various fixes for bugs and poor code I've come across while investigating bug 1678097.
Assignee | ||
Comment 1•4 years ago
|
||
branchTestPtr can be optimized in the manner of branchTest32, using CBZ/CBNZ
when the inputs are the same and we're testing for zero/nonzero.
Also tidy up the logic of branchTest32 to make it slightly easier to understand.
Assignee | ||
Comment 2•4 years ago
|
||
This is not a functional change but allows switches to be emitted for wasm:
wasm disallows the use of an ImmPtr for movePatchablePtr but allows ImmWord,
this is in order to guard against embedded pointers in the serializable
machine code. For a patchable word that will always be patched after
code is deserialized, we can use ImmWord, as we do on other platforms.
Depends on D97770
Assignee | ||
Comment 3•4 years ago
|
||
Every operation that updates the SP must be sure to sync the SP. Various
addToStackPtr APIs did not do this.
Depends on D97771
Assignee | ||
Comment 4•4 years ago
|
||
ARM64 inherited the wasmLoad / wasmStore API from ARM and MIPS wherein
the ptr register is clobberable by the macroassembler, so as to avoid
allocating a temp register. On ARM64 there are several temp registers,
so this is not necessary, and we can generate better code (from Ion)
by not clobbering.
Depends on D97771
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Comment 6•4 years ago
|
||
bugherder |
Assignee | ||
Comment 7•4 years ago
|
||
Depends on D100025
Assignee | ||
Comment 8•4 years ago
|
||
Depends on D100112
Assignee | ||
Comment 9•4 years ago
|
||
Depends on D100113
Assignee | ||
Comment 10•4 years ago
|
||
Depends on D100114
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Comment 11•4 years ago
|
||
Comment 12•4 years ago
|
||
bugherder |
Assignee | ||
Updated•4 years ago
|
Updated•4 years ago
|
Comment 13•4 years ago
|
||
Comment on attachment 9189168 [details]
Bug 1678542 - Always sync the SP (WIP)
Revision D97772 was moved to bug 1678097. Setting attachment 9189168 [details] to obsolete.
Assignee | ||
Comment 14•4 years ago
|
||
This was supposed to have landed with the bugfix. The bug
was that NegD and NegF chose their output register to be
their input register always, ignoring the output register
selected by the register allocator.
Depends on D100655
Comment 15•4 years ago
|
||
Comment 16•4 years ago
|
||
bugherder |
Description
•