v8/test
Andreas Haas f11a938ad5 [wasm][liftoff] Order registers in a register pair
With this CL the registers in a register pair get ordered such that the
low word register always has a lower register code than the high word
register. This should allow easier reasoning about the register
allocation, and prevent some register allocation bugs.

Background: for many operations in Liftoff, input registers are reused
as output registers. With register pairs, input register pairs are
reused as output register pairs. Additional reasoning, and sometimes
even additional code is needed when the registers of the output register
pair are swapped, i.e. when the high word register of the input becomes
the low word register of the output. With this CL the additional
reasoning is not necessary anymore, as the high word and low word
registers would get swapped during register allocation.

Additionally this CL fixes the logic of the last_spilled_regs list. This
list stored the last spilled registers, but recorded only one of the two
registers of a register pair. With this CL, both registers get recorded.

This CL does not have a regression test. The regression test was more
than 9000 lines long, and quite slow. I was not able to minimize it
substantially. The test would be fragile by nature, as it has to create
a special register configuration or otherwise does not test anything
meaningful. All in all I think it's better not to add the test.

R=clemensb@chromium.org

Bug: chromium:1074586
Change-Id: I4b2475b0c6537c7ce2e51fee281388cdd85f2953
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2168875
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67473}
2020-04-29 13:56:21 +00:00
..
benchmarks Create master files per benchmark in csuite 2020-02-26 10:37:33 +00:00
cctest [debugger] clarify purpose of test case 2020-04-29 10:42:21 +00:00
common [wasm-gc] Add a basic test case for structs 2020-04-21 17:32:16 +00:00
debugger [debug] Reenable tests in stress_incremental_marking 2020-04-16 16:31:27 +00:00
debugging Wasm debugging with LLDB: access Wasm engine state 2020-04-28 01:02:32 +00:00
fuzzer [wasm-simd][fuzzer] Add f64x2 and f32x4 comparison to fuzzer 2020-04-28 23:39:30 +00:00
inspector [debugger] fix function in suspended generator 2020-04-28 15:42:43 +00:00
intl [intl] Remove flag for Intl.DisplayNames 2020-04-25 02:14:01 +00:00
js-perf-test [cleanup][test] Fix typo in js-perf-test/Scope/with.js 2020-02-12 10:59:54 +00:00
memory [owners] Remove redundant OWNERS files in test/ 2019-06-24 12:44:32 +00:00
message [wasm] Remove the --wasm-interpret-all flag 2020-04-28 08:14:52 +00:00
mjsunit [wasm][liftoff] Order registers in a register pair 2020-04-29 13:56:21 +00:00
mkgrokdump [heap] Enable Verify for RO_SPACE when it is shared 2019-11-04 09:55:45 +00:00
mozilla Remove and update some outdated TODO(mstarzinger). 2019-12-13 10:18:04 +00:00
test262 [intl] Remove flag for Intl.DisplayNames 2020-04-25 02:14:01 +00:00
torque [torque] allow builtins without context parameter 2020-04-28 13:20:56 +00:00
unittests Reland "Reland "[turbofan][csa] optimize Smi untagging better"" 2020-04-29 07:30:11 +00:00
wasm-api-tests [wasm] Clean up WASM_CALL_INDIRECT macros 2019-11-28 14:44:06 +00:00
wasm-js [wasm] Remove remaining multi-value tests 2020-04-22 19:49:03 +00:00
wasm-spec-tests [wasm] Remove remaining multi-value tests 2020-04-22 19:49:03 +00:00
webkit [class] Improve error message for calling anonymous class constructors 2019-12-05 21:13:07 +00:00
BUILD.gn [preparser] deprecate stand-alone "preparser" test-suite 2019-11-20 08:52:59 +00:00
OWNERS Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00