v8/test/mjsunit/maglev
Jakob Linke 5646b9c3c0 [maglev] Use the parallel move resolver for handler trampolines
Due to stack slot reuse, any of the moves that are part of the handler
trampoline may conflict and thus need parallel move resolution.

Materialisations (= calls to the NewHeapNumber builtin) add an addtl
complication since a) materialising moves can also be part of any
move conflict, b) the builtin call may clobber arbitrary registers,
and c) materialisation need a spot to store the NewHeapNumber result.
We resolve this by materialising into new temporary stack slots
before the main move sequence, and popping into the final target
locations after the main move sequence.

Bug: v8:7700
Change-Id: I1734faf189d02e38af07a817a9b647e2dce54f22
Fixed: chromium:1368046
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3921515
Auto-Submit: Jakob Linke <jgruber@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83511}
2022-10-04 09:55:20 +00:00
..
regress [maglev] Use the parallel move resolver for handler trampolines 2022-10-04 09:55:20 +00:00
00.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
01.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
02.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
03.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
04.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
05.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
06.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
07.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
08.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
09.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
10.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
11.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
12.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
13.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
14.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
15.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
16.js [maglev] Basic tiering to Maglev 2022-03-02 13:35:32 +00:00
17.js [maglev] Implement StoreField 2022-03-08 15:09:53 +00:00
18.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
19.js [maglev] CompactInterpreterFrameState fixes 2022-03-29 13:59:48 +00:00
add-number.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
add-smi.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
argument-over-under-application.js [maglev] Fix over application return stack cleanup 2022-03-29 10:39:28 +00:00
call-js-runtime.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
call-runtime-for-pair.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
constant-in-proto-proxy-after-holder.js [maglev] Depend on stable protos up to validity cell 2022-09-05 10:12:04 +00:00
destructuring-assignment-with-exclude-properties.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
eager-deopt-in-inline.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
exceptions.js [maglev] Support exception handlers 2022-09-02 12:09:32 +00:00
get-template-object.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
inner-function.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
int32-branch.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
lazy-deopt-with-onstack-activation.js [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
lazy-deopt-without-onstack-activation.js [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
lda-global-inside-typeof.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
lda-global.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
lda-module-variable-import.mjs [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
lda-module-variable.mjs [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
literals.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
load-named.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
lots-of-registers.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
mutable-context-access.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
omit-default-ctors-array-iterator.js [maglev] Omit calling default ctors 2022-09-28 11:02:44 +00:00
omit-default-ctors.js [maglev] Omit calling default ctors 2022-09-28 11:02:44 +00:00
osr-from-ml-to-tf.js [maglev] Fix osr-from-ml-to-tf flake again 2022-09-01 08:03:22 +00:00
osr-to-tf.js [maglev] Implement Maglev-to-Turbofan OSR 2022-08-30 11:51:28 +00:00
set-pending-message.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
shift-right-logical-smi.js Reland "[maglev] Deopt on overflow in >>>" 2022-09-08 09:16:46 +00:00
shift-right-logical.js Reland "[maglev] Deopt on overflow in >>>" 2022-09-08 09:16:46 +00:00
shift-right-smi.js Reland "[maglev] Deopt on overflow in >>>" 2022-09-08 09:16:46 +00:00
shift-right.js Reland "[maglev] Deopt on overflow in >>>" 2022-09-08 09:16:46 +00:00
simple-inlining.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
spill-double.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
sta-module-variable.mjs [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
string-compare.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
super-ic.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
tier-to-ml-to-tf.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00
undefined-or-null-branch.js [cleanup] Remove --stress-opt remnants 2022-08-31 08:37:44 +00:00