Closed Bug 1661256 Opened 3 months ago Closed 1 month ago

Create a jsapi-test test case to collect all CallWithABI signatures.

Categories

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

task

Tracking

()

RESOLVED FIXED
84 Branch
Tracking Status
firefox84 --- fixed

People

(Reporter: nbp, Assigned: nbp)

References

(Blocks 1 open bug, Regressed 1 open bug)

Details

Attachments

(39 files)

47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review

Currently we are unable to tell whether we we would be facing a problem with the Aarch64 ABI made by Apple.

We should make a test case, and probably a sanity check as well, to ensure that we are generating good code for all functions signatures on all architectures that we are targeting.

Attachment #9172384 - Attachment description: Bug 1661256 - WIP: Add ABIFunction to avoid callWithABI with raw pointers. f=jandem → Bug 1661256 - Add ABIFunction to avoid callWithABI with raw pointers. f=jandem
Attachment #9172384 - Attachment description: Bug 1661256 - Add ABIFunction to avoid callWithABI with raw pointers. f=jandem → [DO NOT COMMIT] Bug 1661256: parts 1-36, 38
Attachment #9177436 - Attachment description: Bug 1661256 test - Add test case to check that the ABI is respected by the MacroAssembler. → [DO NOT COMMIT] Bug 1661256 test - Add test case to check that the ABI is respected by the MacroAssembler.
Attachment #9177436 - Attachment description: [DO NOT COMMIT] Bug 1661256 test - Add test case to check that the ABI is respected by the MacroAssembler. → [DO NOT COMMIT] Bug 1661256 part 37 - Add test case to check that the ABI is respected by the MacroAssembler.
Attachment #9177436 - Attachment description: [DO NOT COMMIT] Bug 1661256 part 37 - Add test case to check that the ABI is respected by the MacroAssembler. → Bug 1661256 part 37 - Add test case to check that the ABI is respected by the MacroAssembler.

Adding leave-open keyword until part 37 (test case) and part 38 (remove old code) are landed.

Keywords: leave-open
Pushed by npierron@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/92663cbff599
part 1 - Add a templatized callWithABI function. r=jandem
https://hg.mozilla.org/integration/autoland/rev/e8efad448dcd
part 2 - Convert js::wasm::* callWithABI calls. r=lth
https://hg.mozilla.org/integration/autoland/rev/ad96857a613a
part 3 - Convert JS::ToInt32 callWithABI calls. r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/4ac6aec3ab01
part 4 - Add irregexp callWithABI function calls. r=iain
https://hg.mozilla.org/integration/autoland/rev/0eccae5085df
part 5 - Convert ArgumentsObject::finishForIonPure callWithABI calls. r=jandem
https://hg.mozilla.org/integration/autoland/rev/785c118aafde
part 6 - Convert js::NumberMod callWithABI calls. r=caroline
https://hg.mozilla.org/integration/autoland/rev/bf92594d6969
part 7 - Convert jsmath.h functions called with callWithABI. r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/5502d812c16c
part 8 - Convert js::RegExp*OptimizableRaw callWithABI calls. r=iain
https://hg.mozilla.org/integration/autoland/rev/c543d4605379
part 9 - Convert js::ArrayShiftMoveElements callWithABI call. r=caroline
https://hg.mozilla.org/integration/autoland/rev/7c47162a0274
part 10 - Convert Bailout.h functions called with callWithABI. r=djvj
https://hg.mozilla.org/integration/autoland/rev/350afbd70d33
part 11 - Convert js::jit::InitBaselineFrameForOsr callWithABI calls. r=djvj
https://hg.mozilla.org/integration/autoland/rev/86f20015ac25
part 12 - Convert calls to JS_MASM_VERBOSE functions called with callWithABI. r=lth
https://hg.mozilla.org/integration/autoland/rev/958906054082
part 13 - Convert HandleException callWithABI calls and make them explicit. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/26f99770a459
part 14 - Add typed callWithABI functions calls for computed function pointer. r=jandem
https://hg.mozilla.org/integration/autoland/rev/e2039874b3be
part 15 - Convert TraceLogging.h functions called with callWithABI. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/f7befef7cc09
part 16 - Convert JitMarkFunction to return the DynFn type. r=djvj
https://hg.mozilla.org/integration/autoland/rev/79f12bfd02c9
part 17 - Convert UnaryMathFunction to use DynamicFunction. r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/66b93aec837d
part 18 - Convert js::jit::AssertValid* functions called with callWithABI. r=caroline
https://hg.mozilla.org/integration/autoland/rev/8bc6fafde18c
part 19 - Convert js::ExecuteRegExpAtomRaw callWithABI call. r=iain
https://hg.mozilla.org/integration/autoland/rev/da67f68ff283
part 20 - Convert calls to *IteratorObject callWithABI calls. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/71478b8febf9
part 21 - Convert jsnum.h functions called with callWithABI. r=caroline
https://hg.mozilla.org/integration/autoland/rev/0de744f52b50
part 22 - Convert DOM/JSNative calls called with callWithABI. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/0068dd86305a
part 23 - Convert js_free callWithABI calls. r=lth
https://hg.mozilla.org/integration/autoland/rev/f6fee4dfa4a6
part 24 - Convert Atomics*Fn callWithABI dynamic calls. r=lth
https://hg.mozilla.org/integration/autoland/rev/8cb65ed23449
part 25 - Convert Allocate* and CreateMathResult* callWithABI calls. r=iain
https://hg.mozilla.org/integration/autoland/rev/5202146b8fe4
part 26 - Convert Property accessors used with callWithABI. r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/79c13af90973
part 27 - Convert HandleCodeCoverage* callWithABI calls. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/bb5e596c36e8
part 28 - Convert NativeObject's callWithABI calls. r=djvj
https://hg.mozilla.org/integration/autoland/rev/1832ad83cf48
part 29 - Convert LazyLinkTopActivation callWithABI calls. r=jandem
https://hg.mozilla.org/integration/autoland/rev/6ab9cb022dd4
part 30 - Convert EmulatesUndefined callWithABI calls. r=caroline
https://hg.mozilla.org/integration/autoland/rev/026239352468
part 31 - Convert BigInt's callWithABI calls. r=iain
https://hg.mozilla.org/integration/autoland/rev/3b67e71d0f0c
part 32 - Convert GC-related callWithABI calls. r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/87e04a5bd5ff
part 33 - Convert String-related callWithABI calls. r=djvj
https://hg.mozilla.org/integration/autoland/rev/b566932212e8
part 34 - Convert InvokeFomInterpreterStub callWithABI call. r=lth
https://hg.mozilla.org/integration/autoland/rev/1aa852081aef
part 35 - Convert various analysis functions called with callWithABI. r=jandem
https://hg.mozilla.org/integration/autoland/rev/b8b4abf7dee6
part 36 - Convert __aeabi_*divmod callWithABI calls. r=tcampbell
Pushed by npierron@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/608bd1f0078d
part 1 - Add a templatized callWithABI function. r=jandem
https://hg.mozilla.org/integration/autoland/rev/f034c0b787f0
part 2 - Convert js::wasm::* callWithABI calls. r=lth
https://hg.mozilla.org/integration/autoland/rev/2a2a87c938a3
part 3 - Convert JS::ToInt32 callWithABI calls. r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/b369ea98bd7f
part 4 - Add irregexp callWithABI function calls. r=iain
https://hg.mozilla.org/integration/autoland/rev/9f006b4ec4fb
part 5 - Convert ArgumentsObject::finishForIonPure callWithABI calls. r=jandem
https://hg.mozilla.org/integration/autoland/rev/0d629d3d322c
part 6 - Convert js::NumberMod callWithABI calls. r=caroline
https://hg.mozilla.org/integration/autoland/rev/14b33ae074f0
part 7 - Convert jsmath.h functions called with callWithABI. r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/24fb1a111479
part 8 - Convert js::RegExp*OptimizableRaw callWithABI calls. r=iain
https://hg.mozilla.org/integration/autoland/rev/7ca798a99837
part 9 - Convert js::ArrayShiftMoveElements callWithABI call. r=caroline
https://hg.mozilla.org/integration/autoland/rev/0211d2b7027c
part 10 - Convert Bailout.h functions called with callWithABI. r=djvj
https://hg.mozilla.org/integration/autoland/rev/b62d1f8f0464
part 11 - Convert js::jit::InitBaselineFrameForOsr callWithABI calls. r=djvj
https://hg.mozilla.org/integration/autoland/rev/c527762f86ff
part 12 - Convert calls to JS_MASM_VERBOSE functions called with callWithABI. r=lth
Pushed by npierron@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/51cdbad369f3
part 13 - Convert HandleException callWithABI calls and make them explicit. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/bd0471fd0267
part 14 - Add typed callWithABI functions calls for computed function pointer. r=jandem
https://hg.mozilla.org/integration/autoland/rev/99546a1914d8
part 15 - Convert TraceLogging.h functions called with callWithABI. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/07892c5589a9
part 16 - Convert JitMarkFunction to return the DynFn type. r=djvj
https://hg.mozilla.org/integration/autoland/rev/830cd76cc768
part 17 - Convert UnaryMathFunction to use DynamicFunction. r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/474365251fd0
part 18 - Convert js::jit::AssertValid* functions called with callWithABI. r=caroline
https://hg.mozilla.org/integration/autoland/rev/61f34fc75005
part 19 - Convert js::ExecuteRegExpAtomRaw callWithABI call. r=iain
https://hg.mozilla.org/integration/autoland/rev/a01083150bfa
part 20 - Convert calls to *IteratorObject callWithABI calls. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/f846608b8bcf
part 21 - Convert jsnum.h functions called with callWithABI. r=caroline
https://hg.mozilla.org/integration/autoland/rev/f3395b81607a
part 22 - Convert DOM/JSNative calls called with callWithABI. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/a68b76fde34c
part 23 - Convert js_free callWithABI calls. r=lth
https://hg.mozilla.org/integration/autoland/rev/3ef766b14c5f
part 24 - Convert Atomics*Fn callWithABI dynamic calls. r=lth
Pushed by npierron@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/754792b02280
part 13 - Convert HandleException callWithABI calls and make them explicit. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/40d8948d2475
part 14 - Add typed callWithABI functions calls for computed function pointer. r=jandem
https://hg.mozilla.org/integration/autoland/rev/2cf2b2373140
part 15 - Convert TraceLogging.h functions called with callWithABI. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/ebecd7bf0d0f
part 16 - Convert JitMarkFunction to return the DynFn type. r=djvj
https://hg.mozilla.org/integration/autoland/rev/f23818fe4df6
part 17 - Convert UnaryMathFunction to use DynamicFunction. r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/cbc87ed1a31c
part 18 - Convert js::jit::AssertValid* functions called with callWithABI. r=caroline
https://hg.mozilla.org/integration/autoland/rev/6c8257875230
part 19 - Convert js::ExecuteRegExpAtomRaw callWithABI call. r=iain
https://hg.mozilla.org/integration/autoland/rev/faae301eb160
part 20 - Convert calls to *IteratorObject callWithABI calls. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/3cc40a9d306e
part 21 - Convert jsnum.h functions called with callWithABI. r=caroline
https://hg.mozilla.org/integration/autoland/rev/8313535cc9e3
part 22 - Convert DOM/JSNative calls called with callWithABI. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/cd1244447a4f
part 23 - Convert js_free callWithABI calls. r=lth
https://hg.mozilla.org/integration/autoland/rev/248dbb293545
part 24 - Convert Atomics*Fn callWithABI dynamic calls. r=lth
Pushed by npierron@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/50d9ea94a142
part 25 - Convert Allocate* and CreateMathResult* callWithABI calls. r=iain
https://hg.mozilla.org/integration/autoland/rev/4ec848330d06
part 26 - Convert Property accessors used with callWithABI. r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/62ecc24b2ea1
part 27 - Convert HandleCodeCoverage* callWithABI calls. r=tcampbell
https://hg.mozilla.org/integration/autoland/rev/127b41b53e8d
part 28 - Convert NativeObject's callWithABI calls. r=djvj
https://hg.mozilla.org/integration/autoland/rev/85e18319319c
part 29 - Convert LazyLinkTopActivation callWithABI calls. r=jandem
https://hg.mozilla.org/integration/autoland/rev/31ea5885e036
part 30 - Convert EmulatesUndefined callWithABI calls. r=caroline
https://hg.mozilla.org/integration/autoland/rev/0cec6fdfd676
part 31 - Convert BigInt's callWithABI calls. r=iain
https://hg.mozilla.org/integration/autoland/rev/44e422332c5b
part 32 - Convert GC-related callWithABI calls. r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/caa6adaf9dae
part 33 - Convert String-related callWithABI calls. r=djvj
https://hg.mozilla.org/integration/autoland/rev/58b32abc0c0f
part 34 - Convert InvokeFomInterpreterStub callWithABI call. r=lth
https://hg.mozilla.org/integration/autoland/rev/cdcb53d7f809
part 35 - Convert various analysis functions called with callWithABI. r=jandem
https://hg.mozilla.org/integration/autoland/rev/83c6d05bae71
part 36 - Convert __aeabi_*divmod callWithABI calls. r=tcampbell
Pushed by npierron@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/b0e147b5afd3
part 37 - Add test case to check that the ABI is respected by the MacroAssembler. r=jandem,sfink
Pushed by npierron@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2592edffe5f4
part 37 - Add test case to check that the ABI is respected by the MacroAssembler. r=jandem,sfink
Pushed by npierron@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a0ad4ca018de
part 38 - Remove callWithABI using untyped function pointer. r=jandem

All patches are landed in autland, removing the leave-open keyword.

Flags: needinfo?(nicolas.b.pierron)
Keywords: leave-open
Flags: needinfo?(nicolas.b.pierron)
Keywords: leave-open
Regressions: 1673946
Pushed by npierron@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/4865faeaf6e2
part 37 - Add test case to check that the ABI is respected by the MacroAssembler. r=jandem,sfink
Status: ASSIGNED → RESOLVED
Closed: 1 month ago
Resolution: --- → FIXED
Target Milestone: --- → 84 Branch
Regressions: 1674714
Regressions: 1678316
You need to log in before you can comment on or make changes to this bug.