• 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
assembler-arm64-inl.h 33.2 KB