• jgruber's avatar
    [builtins,x64] More information about root-relative accesses · 1bef7d21
    jgruber authored
    When disassembling code (in particular embedded builtins), try to
    print better information about root-relative accesses. For example:
    
     REX.W movq rdx,[r13+0x548]
     REX.W movq rax,[r13+0x10a8]
    
    turns into
    
     REX.W movq rdx,[r13+0x548] (root (0x1ff420d0ccd9 <FixedArray[1672]>))
     REX.W movq rax,[r13+0x10a8] (external reference (check_object_type))
    
    This is a band-aid solution until we come up with something better. It
    does not understand multi-instruction sequences (such as loads from
    the builtins constants table), assumes every kRootRegister-relative
    access is actually root-relative (i.e. the register is not initialized
    to some other value), and is limited to a particular instruction
    pattern.
    
    Bug: v8:6666,v8:7969
    Change-Id: I35af92e8233c9bb0f2ad6ba0e86bd0ab69177205
    Reviewed-on: https://chromium-review.googlesource.com/1146806
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#54777}
    1bef7d21
disasm.h 2.68 KB