v8/test
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
..
benchmarks [test] Forgive tests timing out on num-fuzzers 2018-02-08 23:08:05 +00:00
cctest [builtins] Add builtins constants list to roots 2018-02-21 15:07:42 +00:00
common [wasm] Add remaining saturating conversions 2018-02-07 19:45:39 +00:00
debugger [debug] do not leak optimized code into no-side-effect evaluate. 2018-02-20 11:22:32 +00:00
fuzzer [multi-return] Restrict number of params and returns in the fuzzer 2018-02-12 10:07:38 +00:00
inspector [debug] do not leak optimized code into no-side-effect evaluate. 2018-02-20 11:22:32 +00:00
intl [test] Remove context usage from test processors 2018-02-01 10:35:02 +00:00
js-perf-test Add Peter as an owner of the JSTests benchmark 2018-02-13 02:49:25 +00:00
memory [snapshot] add tracking for builtin snapshot size. 2017-08-31 07:29:31 +00:00
message [parsing] Provide location for function redeclaration error. 2018-02-01 20:46:11 +00:00
mjsunit [wasm] Move indirect function tables into the WasmContext 2018-02-21 12:29:21 +00:00
mkgrokdump [test] Remove context usage from test processors 2018-02-01 10:35:02 +00:00
mozilla [test] Remove context usage from test processors 2018-02-01 10:35:02 +00:00
preparser [test] Remove dead code from suites and tests 2018-02-01 14:12:49 +00:00
test262 Ship JSON ⊂ ECMAScript 2018-02-16 22:21:45 +00:00
unittests [turbofan] Move Math.* builtins to JSCallReducer 2018-02-21 12:21:20 +00:00
wasm-spec-tests Remove mtrofin and rossberg from OWNERS 2018-02-15 23:48:43 +00:00
webkit Revert "[builtins] Mega-revert to address the Dev blocker in crbug.com/808911." 2018-02-08 17:25:13 +00:00
bot_default.isolate [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
BUILD.gn [test] Add a d8_default test suite collection 2018-01-12 15:18:04 +00:00
d8_default.isolate [test] Add a d8_default test suite collection 2018-01-12 15:18:04 +00:00
default.isolate [wasm] Add wasm spec tests to the v8 test runner 2017-04-27 13:00:13 +00:00
optimize_for_size.isolate [debugger] basic test infrastructure for new debugger test api. 2016-10-21 06:38:05 +00:00
perf.isolate Reland "Reland "[test] Creating command before execution phase."" 2017-12-04 13:40:29 +00:00