• Soby Mathew's avatar
    PIE: Use PC relative adrp/adr for symbol reference · f1722b69
    Soby Mathew authored
    
    
    This patch fixes up the AArch64 assembly code to use
    adrp/adr instructions instead of ldr instruction for
    reference to symbols. This allows these assembly
    sequences to be Position Independant. Note that the
    the reference to sizes have been replaced with
    calculation of size at runtime. This is because size
    is a constant value and does not depend on execution
    address and using PC relative instructions for loading
    them makes them relative to execution address. Also
    we cannot use `ldr` instruction to load size as it
    generates a dynamic relocation entry which must *not*
    be fixed up and it is difficult for a dynamic loader
    to differentiate which entries need to be skipped.
    
    Change-Id: I8bf4ed5c58a9703629e5498a27624500ef40a836
    Signed-off-by: default avatarSoby Mathew <soby.mathew@arm.com>
    f1722b69
el3_common_macros.S 12.7 KB