• Pierre Langlois's avatar
    [arm64][builtins] Allow simulator instructions in builtins. · d0650ae1
    Pierre Langlois authored
    Simulator-specific instructions are very useful, we can:
    
      - Place breakpoints that enable the simulator's interactive debugger, allowing
        us to see registers, the stack and print JS objects.
    
      - Enable and disable simulator tracing dynamically.
    
      - Call printf() directly, as the simulator cannot easily support its calling
        convention.
    
    However these tools are not available when generating builtins. The reason is
    that when cross-compiling, builtins are generated for real hardware but may
    still run inside the simulator on the host if we have a custom snapshot. Using
    the `v8_embed_script` GN option will do that for example but embedders may also
    do this with the V8 API.
    
    mksnapshot cannot tell the difference between generating code for a simulator
    build and a cross-build. If we change this, we can allow us to use
    simulator-specific features in builtins in simulator builds.
    
    So in this patch we:
    
      - Introduce a --target_is_simulator mksnapshot flag to drive the
        enable_simulator_code Assembler option.
    
      - Make sure the assembler respect the option instead of the USE_SIMULATOR
        macro.
    
    
    Change-Id: I7a7249f514427c1a2518a1af3679679596a72c7e
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1991497Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
    Cr-Commit-Position: refs/heads/master@{#65734}
    d0650ae1
Name
Last commit
Last update
..
api Loading commit data...
asmjs Loading commit data...
ast Loading commit data...
base Loading commit data...
builtins Loading commit data...
codegen Loading commit data...
common Loading commit data...
compiler Loading commit data...
compiler-dispatcher Loading commit data...
d8 Loading commit data...
date Loading commit data...
debug Loading commit data...
deoptimizer Loading commit data...
diagnostics Loading commit data...
execution Loading commit data...
extensions Loading commit data...
flags Loading commit data...
handles Loading commit data...
heap Loading commit data...
ic Loading commit data...
init Loading commit data...
inspector Loading commit data...
interpreter Loading commit data...
json Loading commit data...
libplatform Loading commit data...
libsampler Loading commit data...
logging Loading commit data...
numbers Loading commit data...
objects Loading commit data...
parsing Loading commit data...
profiler Loading commit data...
protobuf Loading commit data...
regexp Loading commit data...
roots Loading commit data...
runtime Loading commit data...
sanitizer Loading commit data...
snapshot Loading commit data...
strings Loading commit data...
tasks Loading commit data...
third_party Loading commit data...
torque Loading commit data...
tracing Loading commit data...
trap-handler Loading commit data...
utils Loading commit data...
wasm Loading commit data...
zone Loading commit data...
DEPS Loading commit data...
OWNERS Loading commit data...