• Ross McIlroy's avatar
    [Deopt] Remove jump table in prologue of deopt entries. · 4ab96a9a
    Ross McIlroy authored
    Remove the use of a jump table in the prologue of the deopt entries
    and instead pass the bailout id explicitly in a register when calling
    the deopt entry routine from optimized code. This unifies the logic
    with the way the Arm64 code works. It saves the following amount of
    memory in code stubs:
    
     - arm:  384KB
     - ia32: 480KB
     - x64:  240KB
    
    This could be offset by a slight increase in the size of optimized code
    for loading the immediate, however this impact should be minimal and
    will scale with the maximum number of bailout ids (e.g., the size of
    code will increase by one instruction per bailout id on Arm, therefore
    ~98,000 bailouts will be needed before the overhead is greater than
    the current fixed table size).
    
    Change-Id: I838604b48fa04cbd45320c7b9dac0de08fd8eb25
    Reviewed-on: https://chromium-review.googlesource.com/c/1398224
    Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
    Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#58636}
    4ab96a9a
Name
Last commit
Last update
..
assembler-arm64-inl.h Loading commit data...
assembler-arm64.cc Loading commit data...
assembler-arm64.h Loading commit data...
codegen-arm64.cc Loading commit data...
constants-arm64.h Loading commit data...
cpu-arm64.cc Loading commit data...
decoder-arm64-inl.h Loading commit data...
decoder-arm64.cc Loading commit data...
decoder-arm64.h Loading commit data...
deoptimizer-arm64.cc Loading commit data...
disasm-arm64.cc Loading commit data...
disasm-arm64.h Loading commit data...
eh-frame-arm64.cc Loading commit data...
frame-constants-arm64.cc Loading commit data...
frame-constants-arm64.h Loading commit data...
instructions-arm64-constants.cc Loading commit data...
instructions-arm64.cc Loading commit data...
instructions-arm64.h Loading commit data...
instrument-arm64.cc Loading commit data...
instrument-arm64.h Loading commit data...
interface-descriptors-arm64.cc Loading commit data...
macro-assembler-arm64-inl.h Loading commit data...
macro-assembler-arm64.cc Loading commit data...
macro-assembler-arm64.h Loading commit data...
register-arm64.cc Loading commit data...
register-arm64.h Loading commit data...
simulator-arm64.cc Loading commit data...
simulator-arm64.h Loading commit data...
simulator-logic-arm64.cc Loading commit data...
utils-arm64.cc Loading commit data...
utils-arm64.h Loading commit data...