v8/test/cctest/interpreter
Leszek Swirski 732f394c5d [sparkplug] Clobber accumulator in StaGlobal
StaGlobal didn't write the accumulator, but the baseline implementation
assumed that it could preserve the accumulator by taking the return
value of the StoreGlobalIC. This almost always worked, except for
setters on the global object.

Fix this by marking StaGlobal as clobbering the accumulator, same as
StaNamedProperty (StaNamedProperty needs to do this anyway to avoid
inlined setters from needing to create accumulator-preserving frames;
StaGlobal would have needed the same thing if we'd ever inlined setters
for it).

Also, add a new debug scope, EnsureAccumulatorPreservedScope, to the
baseline compiler, which checks if the accumulator value is preserved
across non-accumulator-writing bytecodes. This found a (benign) bug with
ForInPrepare, so fix that too.

Fixed: chromium:1242306
Change-Id: I220b5b1c41010c16ac9f944cbd55d2705c299434
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3122325
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76525}
2021-08-27 09:06:13 +00:00
..
bytecode_expectations [sparkplug] Clobber accumulator in StaGlobal 2021-08-27 09:06:13 +00:00
bytecode-expectations-printer.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
bytecode-expectations-printer.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
generate-bytecode-expectations.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
interpreter-tester.cc [runtime] Move string table off-heap 2020-08-06 12:27:18 +00:00
interpreter-tester.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
source-position-matcher.cc Fix most instances of -Wunreachable-code-aggressive. 2021-07-01 03:03:25 +00:00
source-position-matcher.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-bytecode-generator.cc Remove one-shot function optimizations. 2021-05-21 12:38:18 +00:00
test-interpreter-intrinsics.cc [interpreter] Remove %_Call 2021-06-17 15:16:41 +00:00
test-interpreter.cc [interpreter] Remove unused interpreter intrinsics 2021-06-17 13:43:41 +00:00
test-source-positions.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00