MCPcopy Create free account
hub / github.com/encounter/objdiff / write_branch_target

Method write_branch_target

objdiff-core/src/arch/arm.rs:562–578  ·  view source on GitHub ↗
(&mut self, branch_target: unarm::BranchTarget)

Source from the content-addressed store, hash-verified

560 }
561
562 fn write_branch_target(&mut self, branch_target: unarm::BranchTarget) -> core::fmt::Result {
563 if let Some(resolved) = self.resolved.relocation {
564 match resolved.relocation.flags {
565 RelocationFlags::Elf(elf::R_ARM_THM_XPC22)
566 | RelocationFlags::Elf(elf::R_ARM_THM_PC22)
567 | RelocationFlags::Elf(elf::R_ARM_PC24)
568 | RelocationFlags::Elf(elf::R_ARM_XPC25)
569 | RelocationFlags::Elf(elf::R_ARM_CALL)
570 | RelocationFlags::Elf(elf::R_ARM_THM_PC11)
571 | RelocationFlags::Elf(elf::R_ARM_THM_PC9) => {
572 return self.write(InstructionPart::reloc());
573 }
574 _ => {}
575 }
576 }
577 self.write(InstructionPart::branch_dest(branch_target.addr))
578 }
579
580 fn write_reg(&mut self, reg: unarm::Reg) -> core::fmt::Result { self.write_opaque(reg) }
581

Callers

nothing calls this directly

Calls 2

branch_destFunction · 0.85
writeMethod · 0.45

Tested by

no test coverage detected