diff --git a/Ghidra/Processors/AARCH64/data/languages/AARCH64.cspec b/Ghidra/Processors/AARCH64/data/languages/AARCH64.cspec index 06aed80b94..13e4c67c35 100644 --- a/Ghidra/Processors/AARCH64/data/languages/AARCH64.cspec +++ b/Ghidra/Processors/AARCH64/data/languages/AARCH64.cspec @@ -127,6 +127,9 @@ + + + diff --git a/Ghidra/Processors/ARM/data/languages/ARMinstructions.sinc b/Ghidra/Processors/ARM/data/languages/ARMinstructions.sinc index e46a5be795..b7f459f4c7 100644 --- a/Ghidra/Processors/ARM/data/languages/ARMinstructions.sinc +++ b/Ghidra/Processors/ARM/data/languages/ARMinstructions.sinc @@ -2257,6 +2257,15 @@ ArmPCRelImmed12: reloff is U23=0 & immed & rotate goto Addr24; } +# bl used as a PIC instruction to get at current PC in lr +:bl^COND Addr24 is $(AMODE) & COND & c2527=5 & L24=1 & immed24=0xffffff & Addr24 +{ + build COND; + build Addr24; + lr = inst_next; + goto Addr24; +} + :bl Addr24 is $(AMODE) & cond=14 & c2527=5 & L24=1 & Addr24 { lr = inst_next;