v8/test/cctest
jgruber ad74be52fa [builtins] Add builtins constants list to roots
This is a step towards off-heap (and eventually isolate-independent)
builtins.

Off-heap code cannot use the standard CallStub/CallRuntime mechanisms,
since they directly embed the callee code object pointer within the
caller.  There are two main issues with that: 1. the callee may be
moved by GC, and 2. the pc-relative addressing we currently use breaks
(i.e. ends up pointing to a random spot on the heap) when moving the
caller off-heap.

This CL addresses that by introducing a constants list stored on the
roots array.  Instead of embedding code targets, we now have the option
of loading them from constants list. The code sequence is:

REX.W movq rax,[r13+0x4a0]  // Load the constants cache.
REX.W movq rdx,[rax+0xf]    // From there, load the code target.
...
REX.W addq rdx,0x5f         // Add instruction_start.
call rdx

There's no visible performance impact on the web tooling benchmark.

This list will later be extended to also contain other constants such
as Strings.

Bug: v8:6666
Change-Id: Ifcf67d1f682804ba0b6d3d0383216e16575b6bf5
Reviewed-on: https://chromium-review.googlesource.com/923729
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51434}
2018-02-21 15:07:42 +00:00
..
compiler
heap
interpreter
libplatform
libsampler
parsing
wasm [wasm] Move indirect function tables into the WasmContext 2018-02-21 12:29:21 +00:00
assembler-helper-arm.cc
assembler-helper-arm.h
BUILD.gn
cctest_exe.isolate
cctest.cc
cctest.h
cctest.isolate
cctest.status
DEPS
expression-type-collector-macros.h
gay-fixed.cc
gay-fixed.h
gay-precision.cc
gay-precision.h
gay-shortest.cc
gay-shortest.h
log-eq-of-logging-and-traversal.js
OWNERS
print-extension.cc
print-extension.h
profiler-extension.cc
profiler-extension.h
scope-test-helper.h
setup-isolate-for-tests.cc
setup-isolate-for-tests.h
test-access-checks.cc
test-accessor-assembler.cc
test-accessors.cc
test-allocation.cc
test-api-accessors.cc
test-api-interceptors.cc
test-api.cc
test-api.h
test-array-list.cc
test-assembler-arm64.cc [arm64] Support CSDB instruction 2018-02-21 10:33:32 +00:00
test-assembler-arm.cc
test-assembler-ia32.cc
test-assembler-mips64.cc
test-assembler-mips.cc
test-assembler-ppc.cc
test-assembler-s390.cc
test-assembler-x64.cc
test-atomicops.cc
test-bignum-dtoa.cc
test-bignum.cc
test-bit-vector.cc
test-circular-queue.cc
test-code-layout.cc
test-code-stub-assembler.cc
test-code-stubs-arm64.cc
test-code-stubs-arm.cc
test-code-stubs-ia32.cc
test-code-stubs-mips64.cc
test-code-stubs-mips.cc
test-code-stubs-x64.cc
test-code-stubs.cc
test-code-stubs.h
test-compiler.cc
test-constantpool.cc
test-conversions.cc
test-cpu-profiler.cc
test-date.cc
test-debug.cc
test-decls.cc
test-deoptimization.cc
test-dictionary.cc
test-disasm-arm64.cc [arm64] Support CSDB instruction 2018-02-21 10:33:32 +00:00
test-disasm-arm.cc [arm] Support CSDB instruction 2018-02-21 12:14:48 +00:00
test-disasm-ia32.cc
test-disasm-mips64.cc
test-disasm-mips.cc
test-disasm-ppc.cc
test-disasm-s390.cc
test-disasm-x64.cc
test-diy-fp.cc
test-double.cc
test-dtoa.cc
test-elements-kind.cc
test-experimental-extra.js
test-extra.js
test-fast-dtoa.cc
test-feedback-vector.cc
test-feedback-vector.h
test-field-type-tracking.cc
test-fixed-dtoa.cc
test-flags.cc
test-func-name-inference.cc
test-fuzz-arm64.cc
test-global-handles.cc
test-global-object.cc
test-hashcode.cc
test-hashmap.cc
test-heap-profiler.cc [heap-profiler] Fix a bug in MergeNames function. 2018-02-21 13:52:09 +00:00
test-identity-map.cc
test-inobject-slack-tracking.cc
test-intl.cc
test-isolate-independent-builtins.cc [builtins] Add builtins constants list to roots 2018-02-21 15:07:42 +00:00
test-javascript-arm64.cc
test-js-arm64-variables.cc
test-liveedit.cc
test-lockers.cc
test-log-stack-tracer.cc
test-log.cc
test-macro-assembler-arm.cc
test-macro-assembler-mips64.cc
test-macro-assembler-mips.cc
test-macro-assembler-x64.cc
test-managed.cc
test-mementos.cc
test-modules.cc
test-object.cc
test-orderedhashtable.cc
test-parsing.cc
test-platform.cc
test-profile-generator.cc
test-random-number-generator.cc
test-regexp.cc
test-representation.cc
test-run-wasm-relocation-arm64.cc
test-run-wasm-relocation-arm.cc
test-run-wasm-relocation-ia32.cc
test-run-wasm-relocation-x64.cc
test-sampler-api.cc
test-serialize.cc
test-strings.cc
test-strtod.cc
test-symbols.cc
test-sync-primitives-arm64.cc
test-sync-primitives-arm.cc
test-thread-termination.cc
test-threads.cc
test-trace-event.cc
test-traced-value.cc
test-transitions.cc
test-transitions.h
test-typedarrays.cc
test-types.cc
test-unbound-queue.cc
test-unboxed-doubles.cc
test-unscopables-hidden-prototype.cc
test-usecounters.cc
test-utils-arm64.cc
test-utils-arm64.h
test-utils.cc
test-version.cc
test-weakmaps.cc
test-weaksets.cc
testcfg.py
trace-extension.cc
trace-extension.h
types-fuzz.h
unicode-helpers.h