v8/test/cctest
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
..
compiler Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
heap Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
interpreter [sparkplug] Clobber accumulator in StaGlobal 2021-08-27 09:06:13 +00:00
libplatform [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in test/{cctest,fuzzer,inspector} 2020-11-10 01:24:43 +00:00
libsampler Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
parsing Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
torque [torque] Add LazyNode support 2021-02-23 16:51:53 +00:00
wasm Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
assembler-helper-arm.cc [test, arm] Take isolate as argument for AssembleCode 2020-11-18 14:17:05 +00:00
assembler-helper-arm.h [test, arm] Take isolate as argument for AssembleCode 2020-11-18 14:17:05 +00:00
BUILD.gn Reland "[compiler] Support acq/rel accesses and atomic accesses on tagged" 2021-08-19 18:23:57 +00:00
cctest-utils.h [LOONG64] Add LoongArch64 backend 2021-08-16 13:05:19 +00:00
cctest.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
cctest.h [cctest][wasm] Ensure FLAG_stack_size has an effect 2021-05-03 14:24:46 +00:00
cctest.status Reland "[compiler] Support acq/rel accesses and atomic accesses on tagged" 2021-08-19 18:23:57 +00:00
collector.h [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
DEPS Reland "[tracing] Roll perfetto @ 28b633cd" 2019-09-06 13:42:02 +00:00
disasm-regex-helper.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
disasm-regex-helper.h [turbofan] Improve load poisoning tests. 2019-07-02 17:55:04 +00:00
expression-type-collector-macros.h [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
gay-fixed.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-fixed.h Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-precision.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-precision.h Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-shortest.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
gay-shortest.h Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
manually-externalized-buffer.h [api] Deprecate [Shared]ArrayBuffer::Externalize/GetContents and constructors 2019-10-29 22:01:54 +00:00
OWNERS Update OWNERS in test/* 2021-02-25 14:26:24 +00:00
print-extension.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
print-extension.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
profiler-extension.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
profiler-extension.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
scope-test-helper.h [parser] Various Scope and Context speedups 2019-01-28 13:06:03 +00:00
setup-isolate-for-tests.cc [interpreter] Always put bytecode handlers in builtins table 2018-09-20 09:58:15 +00:00
setup-isolate-for-tests.h Move initialization code into src/init 2019-05-16 12:36:15 +00:00
test-access-checks.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-accessor-assembler.cc [ext-code-space][ic] Migrate IC handlers to CodeT 2021-06-17 14:55:31 +00:00
test-accessors.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-allocation.cc [cleanup][test] Remove redundant NOLINT annotations 2021-04-30 11:46:14 +00:00
test-api-accessors.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-api-array-buffer.cc [sandbox] Disallow ArrayBuffers outside the VM Cage 2021-08-25 09:52:38 +00:00
test-api-icu.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-api-interceptors.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-api-stack-traces.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-api-typed-array.cc [base] Create base/strings.h 2021-06-22 16:55:32 +00:00
test-api-wasm.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-api.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-api.h Reland "Fix -Wimplicit-int-float-conversions." 2021-06-29 16:36:18 +00:00
test-array-list.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-assembler-arm64.cc Fix some -Wunreachable-code-aggressive warnings 2021-08-16 06:45:22 +00:00
test-assembler-arm.cc [wasm-simd][arm] Fuse extadd_pairwise and add SIMD on arm. 2021-06-28 14:26:00 +00:00
test-assembler-ia32.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-assembler-loong64.cc [LOONG64] Add LoongArch64 backend 2021-08-16 13:05:19 +00:00
test-assembler-mips64.cc [cleanup][test] Remove redundant NOLINT annotations 2021-04-30 11:46:14 +00:00
test-assembler-mips.cc [cleanup][test] Remove redundant NOLINT annotations 2021-04-30 11:46:14 +00:00
test-assembler-ppc.cc PPC [simd]: Add tests for some word sized vector instructions 2021-08-16 21:34:29 +00:00
test-assembler-riscv64.cc [riscv64] Fix align failed 2021-08-23 06:44:36 +00:00
test-assembler-s390.cc Reland "Reland "[deoptimizer] Change deopt entries into builtins"" 2020-10-21 06:01:38 +00:00
test-assembler-x64.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-atomicops.cc Fix data race in TypedArray::copyWithin 2021-07-16 11:41:24 +00:00
test-bignum-dtoa.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-bignum.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-bit-vector.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-circular-queue.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-code-layout.cc [code] Make metadata offsets relative to metadata section 2020-10-27 10:49:13 +00:00
test-code-pages.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-code-stub-assembler.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-compiler.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-concurrent-descriptor-array.cc [heap, infra] Remove --local-heaps and --concurrent-allocation flags 2021-02-01 11:01:26 +00:00
test-concurrent-feedback-vector.cc [heap, infra] Remove --local-heaps and --concurrent-allocation flags 2021-02-01 11:01:26 +00:00
test-concurrent-js-array.cc Reland "[compiler] Direct heap reads for JSArrayRef" 2021-02-22 12:15:50 +00:00
test-concurrent-prototype.cc [cleanup] Remove synchronized_ from map accessors 2021-05-17 15:07:46 +00:00
test-concurrent-script-context-table.cc [cleanup] Remove synchronized_ from slot_count and used accessors 2021-05-20 15:19:48 +00:00
test-concurrent-string.cc [string] Skip concurrent tests if FLAG_single_generation is on 2021-06-09 12:30:28 +00:00
test-concurrent-transition-array.cc Reland "[heap] Introduce LocalIsolate for main thread" 2020-11-19 10:44:43 +00:00
test-constantpool.cc PPC: [cleanup] Replace all remaining Min/Max uses with std::min/max 2020-11-25 08:49:53 +00:00
test-conversions.cc [cleanup] Remove V8_2PART_UINT64_C macro 2020-07-20 11:52:17 +00:00
test-cpu-profiler.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-date.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-debug-helper.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-debug.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-decls.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-deoptimization.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-descriptor-array.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-dictionary.cc Disable --stress-concurrent-allocation for tests that change free lists 2020-09-03 11:15:39 +00:00
test-disasm-arm64.cc [wasm-simd] Remove PrefetchTemporal and PrefetchNonTemporal operations 2021-03-22 17:47:49 +00:00
test-disasm-arm.cc [wasm-simd][arm] Fuse extadd_pairwise and add SIMD on arm. 2021-06-28 14:26:00 +00:00
test-disasm-ia32.cc [wasm-simd] Share i32x4.trunc_sat_f64x2 s,u zero implementation 2021-08-25 23:10:59 +00:00
test-disasm-loong64.cc [LOONG64] Add LoongArch64 backend 2021-08-16 13:05:19 +00:00
test-disasm-mips64.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-disasm-mips.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-disasm-ppc.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-disasm-riscv64.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-disasm-s390.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-disasm-x64.cc [wasm-simd] Share i8x16.splat implementation 2021-08-17 21:05:00 +00:00
test-diy-fp.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-double.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-dtoa.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-elements-kind.cc [factory] Remove deprecated JSFunction ctors 2020-11-11 06:12:35 +00:00
test-factory.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-fast-dtoa.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-feedback-vector.cc Fix FeedbackNexus::SetSpeculationMode 2021-05-27 14:39:03 +00:00
test-feedback-vector.h [runtime] Rename Builtins::Name to Builtin 1/2 2021-06-07 20:05:44 +00:00
test-field-type-tracking.cc [compiler] Support concurrent map updates 2021-08-11 10:13:32 +00:00
test-fixed-dtoa.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-flags.cc [no-wasm][flags] Remove wasm flags 2021-03-16 07:31:25 +00:00
test-func-name-inference.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-fuzz-arm64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-global-handles.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-global-object.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-hashcode.cc [dict-proto] Rename v8_dict_mode_prototypes flag 2021-03-29 11:53:45 +00:00
test-hashmap.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-heap-profiler.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-helper-riscv64.cc Add RISC-V backend 2021-02-09 17:06:36 +00:00
test-helper-riscv64.h Add RISC-V backend 2021-02-09 17:06:36 +00:00
test-icache.cc [LOONG64] Add LoongArch64 backend 2021-08-16 13:05:19 +00:00
test-identity-map.cc [string] Remove FLAG_thin_string and enable it all the time 2021-06-09 09:52:48 +00:00
test-ignition-statistics-extension.cc Fix counting ignition dispatches 2021-06-07 18:47:24 +00:00
test-inobject-slack-tracking.cc Refactor of ScopeInfo::ContextSlotIndex 2021-05-19 18:12:40 +00:00
test-inspector.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-intl.cc [lookup] Refactor LookupIterator "property or element" creation 2020-01-09 18:39:11 +00:00
test-javascript-arm64.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-js-arm64-variables.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-js-to-wasm.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-js-weak-refs.cc Reland "[weakrefs] Clear unregister token-related fields when clearing weak cells" 2021-06-02 14:46:43 +00:00
test-liveedit.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-local-handles.cc [heap, infra] Remove --local-heaps and --concurrent-allocation flags 2021-02-01 11:01:26 +00:00
test-lockers.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-log-stack-tracer.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-log.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-macro-assembler-arm64.cc [runtime] Rename Builtins::Name to Builtin 1/2 2021-06-07 20:05:44 +00:00
test-macro-assembler-arm.cc [runtime] Rename Builtins::Name to Builtin 1/2 2021-06-07 20:05:44 +00:00
test-macro-assembler-loong64.cc [LOONG64] Add LoongArch64 backend 2021-08-16 13:05:19 +00:00
test-macro-assembler-mips64.cc [mips] Fix build failed 2021-06-15 04:24:28 +00:00
test-macro-assembler-mips.cc [runtime] Rename Builtins::Name to Builtin 1/2 2021-06-07 20:05:44 +00:00
test-macro-assembler-riscv64.cc [riscv64] Delete s10 from scratch_list 2021-08-19 07:11:26 +00:00
test-macro-assembler-x64.cc [x64] Consolidate SSE/AVX Float32/Float64 Abs/Neg 2021-08-27 00:58:51 +00:00
test-managed.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-mementos.cc [heap] Make creation of NewSpace and NewLargeObjectSpace optional 2021-05-04 06:47:54 +00:00
test-modules.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-object.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-orderedhashtable.cc [dict-proto] make small ordered hash tables use InternalIndex, too 2020-10-29 13:00:53 +00:00
test-parsing.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-persistent-handles.cc [heap, infra] Remove --local-heaps and --concurrent-allocation flags 2021-02-01 11:01:26 +00:00
test-platform.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-pointer-auth-arm64.cc [arm64][cfi] Enable sim_abort_on_bad_auth by default. 2021-02-05 10:23:40 +00:00
test-profile-generator.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-property-details.cc [dict-proto] Allow storing certain PropertyDetails in single byte 2021-02-04 13:45:13 +00:00
test-ptr-compr-cage.cc Revert "[ptr-cage] Better support sharing CodeRange with re-embedded builtins" 2021-05-13 21:40:27 +00:00
test-random-number-generator.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-regexp.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-representation.cc Move relevant files to src/objects 2019-05-20 08:57:47 +00:00
test-roots.cc [heap] Use BasicMemoryChunk::FromHeapObject more 2020-06-17 14:05:48 +00:00
test-sampler-api.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-serialize.cc Revert "[codegen] Disable host-defined options checks in cache" 2021-08-26 13:02:23 +00:00
test-simple-riscv64.cc [cleanup][test] Remove redundant NOLINT annotations 2021-04-30 11:46:14 +00:00
test-smi-lexicographic-compare.cc [cleanup] Eliminate non-const reference parameters 2019-09-10 09:31:07 +00:00
test-stack-unwinding-win64.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-strings.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-strtod.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-swiss-name-dictionary-csa.cc [runtime] Rename Builtins::Name to Builtin 2/2 2021-06-14 12:48:46 +00:00
test-swiss-name-dictionary-infra.cc Reland [dict-proto] C++ implementation of SwissNameDictionary, pt. 10 2021-03-24 17:12:21 +00:00
test-swiss-name-dictionary-infra.h Reland [dict-proto] C++ implementation of SwissNameDictionary, pt. 10 2021-03-24 17:12:21 +00:00
test-swiss-name-dictionary-shared-tests.h Reland "[dict-proto] SIMD support for SwissNameDictionary in Torque" 2021-03-31 13:01:34 +00:00
test-swiss-name-dictionary.cc Reland "[dict-proto] SIMD support for SwissNameDictionary in Torque" 2021-03-31 13:01:34 +00:00
test-symbols.cc [runtime] Rename Name::Hash() to Name::EnsureHash() 2020-11-16 10:48:15 +00:00
test-sync-primitives-arm64.cc Reland "Reland "[deoptimizer] Change deopt entries into builtins"" 2020-10-21 06:01:38 +00:00
test-sync-primitives-arm.cc [test, arm] Take isolate as argument for AssembleCode 2020-11-18 14:17:05 +00:00
test-thread-termination.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-threads.cc Replace base::make_unique by std::make_unique 2019-09-10 11:21:51 +00:00
test-trace-event.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-traced-value.cc [tracing] Improve tracing signals for compilation/optimization. 2019-03-25 14:49:08 +00:00
test-transitions.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-transitions.h [asserts] Make assert scopes LocalHeap friendly 2020-11-20 17:39:14 +00:00
test-typedarrays.cc [api] Remove deprecated [Shared]ArrayBuffer API 2021-03-12 16:24:42 +00:00
test-types.cc Reland "[base] Move most of src/numbers into base" 2021-06-24 15:00:27 +00:00
test-unscopables-hidden-prototype.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-unwinder-code-pages.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-usecounters.cc [atomics] Remove the deprecated Atomics.wake 2020-08-10 23:02:17 +00:00
test-utils-arm64.cc [arm64][cleanup] Remove CPURegister::Is and CPURegister::is 2019-11-14 12:58:09 +00:00
test-utils-arm64.h Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-utils.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-v8windbg.cc [tools] Add v8windbg, a WinDbg extension for V8 2020-02-18 19:16:18 +00:00
test-verifiers.cc [cleanup] Remove atomic kRelaxed accessors in favour for non-atomic ones 2021-03-08 10:57:19 +00:00
test-version.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
test-virtual-memory-cage.cc Introduce v8_enable_virtual_memory_cage 2021-08-11 16:13:42 +00:00
test-weakmaps.cc [test] Fix or skip CHECKs in tests for TPH 2021-05-03 09:05:08 +00:00
test-weaksets.cc [test] Fix or skip CHECKs in tests for TPH 2021-05-03 09:05:08 +00:00
test-web-snapshots.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
testcfg.py Reland "Preparing v8 to use with python3 /test" 2019-03-20 09:56:06 +00:00
trace-extension.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
trace-extension.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
unicode-helpers.cc Move string-related files to src/strings 2019-05-21 07:17:48 +00:00
unicode-helpers.h Move string-related files to src/strings 2019-05-21 07:17:48 +00:00