• Peter Collingbourne's avatar
    Add assembly support for -fsanitize=hwaddress tagged globals. · 9bcb1cb6
    Peter Collingbourne authored
    As of LLVM r368102, Clang will set a pointer tag in bits 56-63 of the
    address of a global when compiling with -fsanitize=hwaddress. This requires
    an adjustment to assembly code that takes the address of such globals: the
    code cannot use the regular R_AARCH64_ADR_PREL_PG_HI21 relocation to refer
    to the global, since the tag would take the address out of range. Instead,
    the code must use the non-checking (_NC) variant of the relocation (the
    link-time check is substituted by a runtime check).
    
    This change makes the necessary adjustment in the movrel macro, where it is
    needed when compiling with -fsanitize=hwaddress.
    Signed-off-by: 's avatarPeter Collingbourne <pcc@google.com>
    Reviewed-by: Martin Storsjö
    Reviewed-by: Janne Grunau
    9bcb1cb6
asm.S 2.85 KB