v8/test/cctest
Toon Verwaest c82cd31325 Drop custom accessor deoptimization support
Previously StaNamedProperty and StaKeyedProperty were in a weird state where
they claimed to not touch the accumulator, but actually did in case they were
deopted in the middle. A frame was added in the middle to overwrite the 
accumulator again with the right value before returning from the setter, using
a lot of complexity in the deoptimizer.

This changes those instructions to be marked as writing to the accumulator
(e.g., the result of the setter), and uses to manually store and reload into
the accumulator the value being stored.

If we want to avoid the additional bytecodes, we could make sure that bytecodes
that claim to leave the accumulator alone don't deopt back to Advance/Dispatch
but LoadAccumulatorWithValue/Advance/Dispatch. That's in a way similar to what
happened before this CL, but I believe could be implemented much simpler.


Bug: 
Change-Id: I4850a690ef5a30976701d0e050951faa46fd1c18
Reviewed-on: https://chromium-review.googlesource.com/753487
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49159}
2017-11-06 20:20:58 +00:00
..
compiler [compiler] Split compilation timer on caching decision 2017-11-01 17:10:45 +00:00
heap Annotate all sites that still mutate {Code} objects. 2017-11-06 16:35:46 +00:00
interpreter Drop custom accessor deoptimization support 2017-11-06 20:20:58 +00:00
libplatform Reland "Switch tracing to use v8::TracingController" 2017-07-03 11:49:23 +00:00
libsampler Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
parsing [reland] [parser] Skipping inner funcs: Use less memory for variables. 2017-10-25 08:49:37 +00:00
wasm Reland "[wasm] Test binary operations for more inputs" 2017-11-06 16:48:46 +00:00
assembler-helper-arm.cc Revert "Revert "[cctest] Clarify that tests for sync instructions are simulator specific"" 2017-11-02 13:11:45 +00:00
assembler-helper-arm.h Revert "Revert "[cctest] Clarify that tests for sync instructions are simulator specific"" 2017-11-02 13:11:45 +00:00
BUILD.gn Revert "Revert "[cctest] Clarify that tests for sync instructions are simulator specific"" 2017-11-02 13:11:45 +00:00
cctest_exe.isolate [Swarming] Isolate perf tests. 2016-02-15 11:17:18 +00:00
cctest.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
cctest.gyp Revert "Revert "[cctest] Clarify that tests for sync instructions are simulator specific"" 2017-11-02 13:11:45 +00:00
cctest.h [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
cctest.isolate [Interpreter] Refactor bytecode generator test suite. 2016-02-25 12:07:19 +00:00
cctest.status [test] Add stress_incremental_marking testing variant 2017-10-05 13:10:42 +00:00
DEPS Add DEPS files and run checkdeps in presubmit check 2014-06-03 13:39:42 +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 Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-fixed.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-precision.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-precision.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-shortest.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-shortest.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
log-eq-of-logging-and-traversal.js Reland "[logging] Use OFStream for log events" 2017-10-20 22:47:01 +00:00
OWNERS Remove x87 port 2017-07-18 18:20:40 +00:00
print-extension.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
print-extension.h Remove deprecated functions the smaller half of the remaing tests 2015-11-17 12:42:44 +00:00
profiler-extension.cc Introduce v8::CpuProfiler::New and v8::CpuProfiler::Dispose API. 2016-07-08 15:01:10 +00:00
profiler-extension.h Introduce v8::CpuProfiler::New and v8::CpuProfiler::Dispose API. 2016-07-08 15:01:10 +00:00
scope-test-helper.h [reland] [parser] Skipping inner funcs: Use less memory for variables. 2017-10-25 08:49:37 +00:00
setup-isolate-for-tests.cc [heap] remove heap init from shipping binary. 2017-09-07 05:24:49 +00:00
setup-isolate-for-tests.h [heap] remove heap init from shipping binary. 2017-09-07 05:24:49 +00:00
test-access-checks.cc Fix receiver checks for v8::Function on a remote context receiver. 2017-02-22 10:13:24 +00:00
test-accessor-assembler.cc Remove ComputeFlags, simply pass in Code::Kind instead of Code::Flags 2017-09-29 15:37:27 +00:00
test-accessors.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-allocation.cc [Memory] Clean up base OS memory abstractions. 2017-11-03 18:49:55 +00:00
test-api-accessors.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-api-interceptors.cc [api] Intercept DefineProperty after Descriptor query 2017-10-18 12:26:59 +00:00
test-api.cc Disable stress-incremental-marking flag for tests using a lot of memory. 2017-10-18 14:20:07 +00:00
test-api.h Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-array-list.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
test-assembler-arm64.cc [Memory] Clean up base OS memory abstractions. 2017-11-03 18:49:55 +00:00
test-assembler-arm.cc Revert "Revert "[cctest] Clarify that tests for sync instructions are simulator specific"" 2017-11-02 13:11:45 +00:00
test-assembler-ia32.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-assembler-mips64.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-assembler-mips.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-assembler-ppc.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-assembler-s390.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-assembler-x64.cc [Memory] Clean up base OS memory abstractions. 2017-11-03 18:49:55 +00:00
test-atomicops.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-bignum-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-bignum.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-bit-vector.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-circular-queue.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-code-layout.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
test-code-stub-assembler.cc [cleanup] Limit Token usage to Parser, AST, BytecodeGenerator 2017-10-25 18:15:26 +00:00
test-code-stubs-arm64.cc [Memory] Clean up base OS memory abstractions. 2017-11-03 18:49:55 +00:00
test-code-stubs-arm.cc [Memory] Clean up base OS memory abstractions. 2017-11-03 18:49:55 +00:00
test-code-stubs-ia32.cc [Memory] Clean up base OS memory abstractions. 2017-11-03 18:49:55 +00:00
test-code-stubs-mips64.cc [Memory] Clean up base OS memory abstractions. 2017-11-03 18:49:55 +00:00
test-code-stubs-mips.cc [Memory] Clean up base OS memory abstractions. 2017-11-03 18:49:55 +00:00
test-code-stubs-x64.cc [Memory] Clean up base OS memory abstractions. 2017-11-03 18:49:55 +00:00
test-code-stubs.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-code-stubs.h [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-compiler.cc [compiler] Split compilation timer on caching decision 2017-11-01 17:10:45 +00:00
test-constantpool.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-conversions.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
test-cpu-profiler.cc [profiler] Remove dead and obsolete CodeCreateEvent. 2017-10-19 11:30:51 +00:00
test-date.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-debug.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-decls.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-deoptimization.cc Pass Isolate pointer to String::Utf8Value/Value constructors 2017-08-28 18:17:08 +00:00
test-dictionary.cc [runtime] Make GetHash and GetOrCreateHash member functions 2017-08-22 00:35:31 +00:00
test-disasm-arm64.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-disasm-arm.cc [arm] Support splitting add with immediate instructions 2017-10-12 08:06:35 +00:00
test-disasm-ia32.cc Revert "[ia32][wasm] Add I32x4AddHoriz and I16x8AddHoriz" 2017-10-17 06:46:56 +00:00
test-disasm-mips64.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-disasm-mips.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-disasm-ppc.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-disasm-s390.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-disasm-x64.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-diy-fp.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-double.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-elements-kind.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-experimental-extra.js Add experimental, non-snapshotted V8 extras 2015-08-20 00:01:14 +00:00
test-extra.js Add isPromise V8 extras util 2017-04-06 13:16:35 +00:00
test-fast-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-feedback-vector.cc [Cleanup][Interpreter] Move feedback slot allocation to bytecode generator 2017-10-19 16:17:14 +00:00
test-feedback-vector.h [objects] Make feedback vector a first-class object 2017-07-27 13:31:55 +00:00
test-field-type-tracking.cc [runtime] Prepare for turning constant field tracking on. 2017-11-06 10:09:34 +00:00
test-fixed-dtoa.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-flags.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-func-name-inference.cc [iwyu] Remove include debug.h -> arguments.h 2017-02-09 09:19:23 +00:00
test-fuzz-arm64.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-global-handles.cc [heap] Introduce a separate pass for destroying phantom handles 2017-11-02 18:16:20 +00:00
test-global-object.cc Pass Isolate pointer to String::Utf8Value/Value constructors 2017-08-28 18:17:08 +00:00
test-hashcode.cc [runtime] Make GetHash and GetOrCreateHash member functions 2017-08-22 00:35:31 +00:00
test-hashmap.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-heap-profiler.cc Reintroduce compile-time --string-slices flag. 2017-11-02 06:59:14 +00:00
test-identity-map.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
test-inobject-slack-tracking.cc Fix flaky test-inobject-slack-tracking cctest. 2017-10-18 13:06:35 +00:00
test-intl.cc [intl] Implement Intl.NumberFormat.prototype.formatToParts 2017-06-30 20:14:18 +00:00
test-javascript-arm64.cc [jumbo] arm64 cctest fixes 2017-09-30 17:17:23 +00:00
test-js-arm64-variables.cc [jumbo] arm64 cctest fixes 2017-09-30 17:17:23 +00:00
test-liveedit.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-lockers.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-log-stack-tracer.cc Cleanup codegen.h includes 2017-10-20 11:56:01 +00:00
test-log.cc [log] Support logging basic function events 2017-10-30 15:58:48 +00:00
test-macro-assembler-arm.cc [Memory] Clean up base OS memory abstractions. 2017-11-03 18:49:55 +00:00
test-macro-assembler-mips64.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-macro-assembler-mips.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-macro-assembler-x64.cc [Memory] Clean up base OS memory abstractions. 2017-11-03 18:49:55 +00:00
test-managed.cc Refactor Managed construction 2017-09-04 11:37:42 +00:00
test-mementos.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
test-modules.cc [api] Expose a module's status and exception. 2017-06-28 15:54:57 +00:00
test-object.cc [bigint] Adapt Object::NoSideEffectsToString. 2017-10-24 08:27:53 +00:00
test-orderedhashtable.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-parsing.cc [asm.js] Delay reporting warnings until finalization. 2017-10-27 16:23:23 +00:00
test-platform.cc [Memory] Clean up base OS memory abstractions. 2017-11-03 18:49:55 +00:00
test-profile-generator.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-random-number-generator.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-regexp.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-representation.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-run-wasm-relocation-arm64.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-run-wasm-relocation-arm.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-run-wasm-relocation-ia32.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-run-wasm-relocation-x64.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-sampler-api.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-serialize.cc Revert "Snapshot: support rehashing property and element dictionaries." 2017-11-06 19:09:30 +00:00
test-strings.cc Reintroduce compile-time --string-slices flag. 2017-11-02 06:59:14 +00:00
test-strtod.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-symbols.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
test-sync-primitives-arm64.cc Revert "Revert "[cctest] Clarify that tests for sync instructions are simulator specific"" 2017-11-02 13:11:45 +00:00
test-sync-primitives-arm.cc Revert "Revert "[cctest] Clarify that tests for sync instructions are simulator specific"" 2017-11-02 13:11:45 +00:00
test-thread-termination.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-threads.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-trace-event.cc [cleanup] Replace List with std::vector in cctests and d8. 2017-08-29 13:29:26 +00:00
test-traced-value.cc [tracing] Use locale independent writer for FP values. 2017-01-12 08:08:57 +00:00
test-transitions.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
test-transitions.h Refactor TransitionArray access 2017-07-28 19:41:21 +00:00
test-typedarrays.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-types.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-unbound-queue.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-unboxed-doubles.cc [cleanup] Prepare V8-internal AccessorInfo objects for sharing. 2017-10-26 15:21:46 +00:00
test-unscopables-hidden-prototype.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-usecounters.cc Adding index accessor counter 2017-10-31 22:20:02 +00:00
test-utils-arm64.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-utils-arm64.h [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-utils.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-version.cc [build] Introduce an embedder version string 2017-10-05 07:17:45 +00:00
test-weakmaps.cc Make sure the identity hash is uniform (at least in the lower bits). 2017-10-12 03:47:56 +00:00
test-weaksets.cc [iwyu] Remove stale TODOs about objects-inl.h inclusion. 2017-10-09 11:14:59 +00:00
testcfg.py [test] Let flags from test case have precedence 2017-10-27 13:22:39 +00:00
trace-extension.cc Expose TickSample and its APIs in v8-profiler.h 2016-07-06 18:40:31 +00:00
trace-extension.h Expose TickSample and its APIs in v8-profiler.h 2016-07-06 18:40:31 +00:00
types-fuzz.h [turbofan] HeapConstant types should compare by handle address 2016-10-08 16:51:53 +00:00
unicode-helpers.h [parser/test] Move cctest/PreParserScopeAnalysis into a new file. 2017-02-07 10:11:01 +00:00