Closed Bug 1661256 Opened 4 years ago Closed 4 years 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)

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
Keywords: leave-open
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: 4 years 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.

Attachment

General

Created:
Updated:
Size: