We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 9051f48 commit 507b988Copy full SHA for 507b988
objdiff-core/src/arch/ppc.rs
@@ -520,6 +520,16 @@ fn generate_fake_pool_reloc_for_addr_mapping(
520
) => {
521
active_pool_relocs.insert(addr_dst_gpr.0, reloc.clone()); // `lis` + `ori`
522
}
523
+ (Opcode::B, _, _, _) => {
524
+ if simplified.mnemonic == "bl" {
525
+ // When encountering a function call, clear any active pool relocations from
526
+ // the volatile registers (r0, r3-r12), but not the nonvolatile registers.
527
+ active_pool_relocs.remove(&0);
528
+ for gpr in 3..12 {
529
+ active_pool_relocs.remove(&gpr);
530
+ }
531
532
533
_ => {}
534
535
} else if let Some((offset, addr_src_gpr, addr_dst_gpr)) =
0 commit comments