Add missing x64 relocation types (#355)

* Add missing x64 relocation types

* Format x86.rs

* Update x86.rs
This commit is contained in:
Haydn Trigg
2026-06-02 13:20:05 +09:30
committed by GitHub
parent a6ddc506f8
commit 2cd1e2e0ce
+23 -2
View File
@@ -80,7 +80,14 @@ impl ArchX86 {
},
Architecture::X86_64 => match flags {
RelocationFlags::Coff(typ) => match typ {
pe::IMAGE_REL_AMD64_ADDR32NB | pe::IMAGE_REL_AMD64_REL32 => Some(4),
pe::IMAGE_REL_AMD64_ADDR32NB
| pe::IMAGE_REL_AMD64_REL32
| pe::IMAGE_REL_AMD64_REL32_1
| pe::IMAGE_REL_AMD64_REL32_2
| pe::IMAGE_REL_AMD64_REL32_3
| pe::IMAGE_REL_AMD64_REL32_4
| pe::IMAGE_REL_AMD64_REL32_5
| pe::IMAGE_REL_AMD64_SECREL => Some(4),
pe::IMAGE_REL_AMD64_ADDR64 => Some(8),
_ => None,
},
@@ -300,7 +307,15 @@ impl Arch for ArchX86 {
},
Architecture::X86_64 => match relocation.flags() {
object::RelocationFlags::Coff {
typ: pe::IMAGE_REL_AMD64_ADDR32NB | pe::IMAGE_REL_AMD64_REL32,
typ:
pe::IMAGE_REL_AMD64_ADDR32NB
| pe::IMAGE_REL_AMD64_REL32
| pe::IMAGE_REL_AMD64_REL32_1
| pe::IMAGE_REL_AMD64_REL32_2
| pe::IMAGE_REL_AMD64_REL32_3
| pe::IMAGE_REL_AMD64_REL32_4
| pe::IMAGE_REL_AMD64_REL32_5
| pe::IMAGE_REL_AMD64_SECREL,
}
| object::RelocationFlags::Elf { r_type: elf::R_X86_64_32 | elf::R_X86_64_PC32 } => {
let data =
@@ -343,6 +358,12 @@ impl Arch for ArchX86 {
pe::IMAGE_REL_AMD64_ADDR64 => Some("IMAGE_REL_AMD64_ADDR64"),
pe::IMAGE_REL_AMD64_ADDR32NB => Some("IMAGE_REL_AMD64_ADDR32NB"),
pe::IMAGE_REL_AMD64_REL32 => Some("IMAGE_REL_AMD64_REL32"),
pe::IMAGE_REL_AMD64_REL32_1 => Some("IMAGE_REL_AMD64_REL32_1"),
pe::IMAGE_REL_AMD64_REL32_2 => Some("IMAGE_REL_AMD64_REL32_2"),
pe::IMAGE_REL_AMD64_REL32_3 => Some("IMAGE_REL_AMD64_REL32_3"),
pe::IMAGE_REL_AMD64_REL32_4 => Some("IMAGE_REL_AMD64_REL32_4"),
pe::IMAGE_REL_AMD64_REL32_5 => Some("IMAGE_REL_AMD64_REL32_5"),
pe::IMAGE_REL_AMD64_SECREL => Some("IMAGE_REL_AMD64_SECREL"),
_ => None,
},
_ => None,