v8/test/cctest
Pierre Langlois 9f4f3c28ec Simplify DoubleToI stub.
The DoubleToI stub is no longer called outside of TurboFan, and always in the
same way:

  - The parameter is on top of the stack.
  - The stub is always called in a slow path.
  - It truncates.

Therefore, we can simplify it to only support this case and remove dead
code.

On top of this, since the stub is always considered to be on a slow path for all
backends, this patch takes the opportunity to remove the `skip_fastpath`
optimisation. This would generate a stub which does not handle all inputs,
assuming that the backend already handled some of the inputs in a fast
path. Removing this allows the stub to have the same behaviour on all targets.

On Arm, this patch reworks the stub a little. We could use ip instead of saving
and restoring a register on the stack. Also, comments would mention that we
assume the exponent to be greater than 31 when the it can be 30 or higher. As
done for Arm64, let's check this at runtime in debug mode.

On Arm64, we can also implement the stub without pushing and poping off the
stack. It needs 2 general purpose and a double scratch registers which we have
reserved already (ip0, ip1 and d30). This removes the need to check that the
stack pointer is always 16-bytes aligned.

Finally, this also fixes a potential bug on Arm64, in the
`GetAllocatableRegisterThatIsNotOneOf` method which is now removed. We were
picking an allocatable double register when we meant to pick a general one.

Bug: v8:6644
Change-Id: I88d4597f377c9fc05432d5922a0d7129b6d19b47
Reviewed-on: https://chromium-review.googlesource.com/720963
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
Cr-Commit-Position: refs/heads/master@{#48671}
2017-10-18 10:23:21 +00:00
..
compiler [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
heap [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
interpreter [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +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 [parser] Skipping inner funcs: Fix hoisting. 2017-10-05 12:00:45 +00:00
wasm Revert "[ia32][wasm] Add I32x4AddHoriz and I16x8AddHoriz" 2017-10-17 06:46:56 +00:00
BUILD.gn Remove FFI prototype. 2017-10-10 11:12:59 +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 Remove FFI prototype. 2017-10-10 11:12:59 +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
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
gay-precision.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-precision.h
gay-shortest.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-shortest.h
log-eq-of-logging-and-traversal.js [d8] Support more console functions 2017-10-13 10:44:17 +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
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 [parser] Skipping inner funcs: Associate data to SharedFunctionInfo, not Script. 2017-06-30 11:12:52 +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 Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +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 Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-api.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +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 [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-assembler-arm.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +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 Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +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
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 Add FixedArray extraction and cloning utils to CSA 2017-10-17 08:32:57 +00:00
test-code-stubs-arm64.cc Simplify DoubleToI stub. 2017-10-18 10:23:21 +00:00
test-code-stubs-arm.cc Simplify DoubleToI stub. 2017-10-18 10:23:21 +00:00
test-code-stubs-ia32.cc Simplify DoubleToI stub. 2017-10-18 10:23:21 +00:00
test-code-stubs-mips64.cc Simplify DoubleToI stub. 2017-10-18 10:23:21 +00:00
test-code-stubs-mips.cc Simplify DoubleToI stub. 2017-10-18 10:23:21 +00:00
test-code-stubs-x64.cc Simplify DoubleToI stub. 2017-10-18 10:23:21 +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 [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +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 Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +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
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 [turbofan] Optimize fast enum cache driven for..in. 2017-09-01 11:27:37 +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 [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +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 Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +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 [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +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 [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +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 Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-log.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-macro-assembler-arm.cc [jumbo] arm unittests fixup 2017-10-03 06:24:30 +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 [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +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 [iwyu] Remove obsolete "api.h" include from "handles-inl.h". 2017-09-11 12:52:20 +00:00
test-orderedhashtable.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-parsing.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-platform-linux.cc [Memory] Move GetRandomMmapAddr from base::OS platform to v8::internal. 2017-09-22 15:26:18 +00:00
test-platform-win32.cc [Memory] Move GetRandomMmapAddr from base::OS platform to v8::internal. 2017-09-22 15:26:18 +00:00
test-platform.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +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 [cleanup] Make LanguageMode an enum class 2017-10-16 11:44:01 +00:00
test-simulator-arm64.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-simulator-arm.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-strings.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +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-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
test-unboxed-doubles.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-unscopables-hidden-prototype.cc
test-usecounters.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +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] Add output for investigating win-asan failures 2017-10-16 10:30:27 +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