Skip to content

Commit e7fe2ad

Browse files
committed
Add Architecture::Sparc32Plus
1 parent fd693f4 commit e7fe2ad

File tree

4 files changed

+7
-1
lines changed

4 files changed

+7
-1
lines changed

Diff for: src/common.rs

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ pub enum Architecture {
2828
Sbf,
2929
Sharc,
3030
Sparc,
31+
Sparc32Plus,
3132
Sparc64,
3233
Wasm32,
3334
Wasm64,
@@ -72,6 +73,7 @@ impl Architecture {
7273
Architecture::Sbf => Some(AddressSize::U64),
7374
Architecture::Sharc => Some(AddressSize::U32),
7475
Architecture::Sparc => Some(AddressSize::U32),
76+
Architecture::Sparc32Plus => Some(AddressSize::U32),
7577
Architecture::Sparc64 => Some(AddressSize::U64),
7678
Architecture::Wasm32 => Some(AddressSize::U32),
7779
Architecture::Wasm64 => Some(AddressSize::U64),

Diff for: src/read/elf/file.rs

+1
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ where
227227
(elf::EM_SBF, _) => Architecture::Sbf,
228228
(elf::EM_SHARC, false) => Architecture::Sharc,
229229
(elf::EM_SPARC, false) => Architecture::Sparc,
230+
(elf::EM_SPARC32PLUS, false) => Architecture::Sparc32Plus,
230231
(elf::EM_SPARCV9, true) => Architecture::Sparc64,
231232
(elf::EM_XTENSA, false) => Architecture::Xtensa,
232233
_ => Architecture::Unknown,

Diff for: src/write/elf/object.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ impl<'a> Object<'a> {
142142
Architecture::Sbf => false,
143143
Architecture::Sharc => true,
144144
Architecture::Sparc => true,
145+
Architecture::Sparc32Plus => true,
145146
Architecture::Sparc64 => true,
146147
Architecture::Xtensa => true,
147148
_ => {
@@ -412,7 +413,7 @@ impl<'a> Object<'a> {
412413
return Err(Error(format!("unimplemented relocation {:?}", reloc)));
413414
}
414415
},
415-
Architecture::Sparc => match (kind, encoding, size) {
416+
Architecture::Sparc | Architecture::Sparc32Plus => match (kind, encoding, size) {
416417
// TODO: use R_SPARC_32 if aligned.
417418
(RelocationKind::Absolute, _, 32) => elf::R_SPARC_UA32,
418419
_ => {
@@ -640,6 +641,7 @@ impl<'a> Object<'a> {
640641
(Architecture::Sbf, None) => elf::EM_SBF,
641642
(Architecture::Sharc, None) => elf::EM_SHARC,
642643
(Architecture::Sparc, None) => elf::EM_SPARC,
644+
(Architecture::Sparc32Plus, None) => elf::EM_SPARC,
643645
(Architecture::Sparc64, None) => elf::EM_SPARCV9,
644646
(Architecture::Xtensa, None) => elf::EM_XTENSA,
645647
_ => {

Diff for: tests/round_trip/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,7 @@ fn elf_any() {
280280
(Architecture::S390x, Endianness::Big),
281281
(Architecture::Sbf, Endianness::Little),
282282
(Architecture::Sparc, Endianness::Big),
283+
(Architecture::Sparc32Plus, Endianness::Big),
283284
(Architecture::Sparc64, Endianness::Big),
284285
(Architecture::Xtensa, Endianness::Little),
285286
]

0 commit comments

Comments
 (0)