From cefc2e52ad74bc94784bd5325058edf88ac97f44 Mon Sep 17 00:00:00 2001 From: ghidra1 Date: Thu, 25 Feb 2021 19:05:05 -0500 Subject: [PATCH] Revert "GP-710 Added support for additional PIC30 ELF relocations (closes #2792)" This reverts commit 9c1fed6a133c3e2a39bf57e97d9f4c4c457d534b. --- .../elf/relocation/PIC30_ElfRelocationHandler.java | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/Ghidra/Processors/PIC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PIC30_ElfRelocationHandler.java b/Ghidra/Processors/PIC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PIC30_ElfRelocationHandler.java index 915ad21d31..6059bd0968 100644 --- a/Ghidra/Processors/PIC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PIC30_ElfRelocationHandler.java +++ b/Ghidra/Processors/PIC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PIC30_ElfRelocationHandler.java @@ -155,25 +155,15 @@ public class PIC30_ElfRelocationHandler extends ElfRelocationHandler { if (elf.e_machine() == ElfConstants.EM_DSPIC30F) { switch (type) { case R_PIC30_16: // 2 - case R_PIC30_FILE_REG_WORD: // 6 - newValue = (symbolValue + addend + oldShortValue); + newValue = (symbolValue + addend + oldShortValue) & 0xffff; memory.setShort(relocationAddress, (short) newValue); break; case R_PIC30_32: // 3 newValue = symbolValue + addend + oldValue; memory.setInt(relocationAddress, newValue); break; - case R_PIC30_FILE_REG_BYTE: // 4 short - case R_PIC30_FILE_REG: // 5 short - int reloc = symbolValue; - reloc += addend; - reloc += oldShortValue; - reloc &= 0x1fff; - newValue = reloc | (oldShortValue & ~0x1fff); - memory.setShort(relocationAddress, (short) newValue); - break; case R_PIC30_FILE_REG_WORD_WITH_DST: // 7 - reloc = symbolValue >> 1; + int reloc = symbolValue >> 1; reloc += addend; reloc += oldValue >> 4; reloc &= 0x7fff;