Looking into a disassembly code, I saw the instructions like:
adrp x8,l066@PAGE
add x8,x8,l066@PAGEOFF
Are they the offset labels being defined somewhere? And how to find the value of them?
Looking into a disassembly code, I saw the instructions like:
adrp x8,l066@PAGE
add x8,x8,l066@PAGEOFF
Are they the offset labels being defined somewhere? And how to find the value of them?
@page and @pageoff are assembler directives to calculate the offset at link time. @page takes the position independent 4k page offset of the symbol and uses the PC to convert it into an absolute page address. @pageoff gives the offset into the page that the symbol is located. Together they are able to generate a 64-bit address in a position-independent way.
I've not seen that disassembly style before, but I'd automatically assume that l066 is a label that the disassembler has inferred, for which it is also annotating the appropriate relocations as Margaret says. In other words, it's effectively adrl x8, l066.