• Jakob Gruber's avatar
    [arm] Add missing RELATIVE_CODE_TARGET iteration · b766299d
    Jakob Gruber authored
    Code object iteration was missing logic for RELATIVE_CODE_TARGET
    reloc entries. Garbage collection could thus miss objects that were
    referenced only as targets of pc-relative calls or jumps.
    
    RELATIVE_CODE_TARGETs are only used on arm, mips, and s390 and only
    at mksnapshot-time.
    
    This exposed another issue in that the interpreter entry trampoline
    copy we generate for profiling *did* contain relative calls in
    runtime-accessible code. This is a problem, since code space on arm is,
    by default, too large to be fully addressable through pc-relative
    calls. This CL thus also disables the related
    FLAG_interpreted_frames_native_stack feature on arm.
    
    Drive-by: Ensure the builtins constants table does not contain Code
    objects.
    
    Bug: v8:8713,v8:6666
    Change-Id: Idd914b46970ad08f9091fc72113fa7aed2732e71
    Reviewed-on: https://chromium-review.googlesource.com/c/1424866Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
    Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#59023}
    b766299d
test-interpreter.cc 192 KB