capstone
capstone copied to clipboard
ARM/T relative branches invalid immediate value
I just wanna know what is this decision based on: https://github.com/aquynh/capstone/blob/45bec1a691e455b864f7e4d394711a467e5493dc/arch/ARM/ARMInstPrinter.c#L853-L874
ARM docs clearly say (100076_0200_00_en page 132):
label is a PC-relative expression.
And ARM ARM (DDI0406C A2.3):
PC, the program counter • When executing an ARM instruction, PC reads as the address of the current instruction plus 8. • When executing a Thumb instruction, PC reads as the address of the current instruction plus 4.
And it's like this in UAL too.
Even if this is the case with capstone and some assemblers, why only relative branches? What about other PC-relative instructions such as LDR?