From 03d4545336c6ae84e62aab38eebeba2829717630 Mon Sep 17 00:00:00 2001 From: emteere <47253321+emteere@users.noreply.github.com> Date: Thu, 7 Mar 2024 18:50:44 -0500 Subject: [PATCH] GP-3110 Code review changes --- .../relocation/Tricore_ElfRelocationHandler.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Ghidra/Processors/tricore/src/main/java/ghidra/app/util/bin/format/elf/relocation/Tricore_ElfRelocationHandler.java b/Ghidra/Processors/tricore/src/main/java/ghidra/app/util/bin/format/elf/relocation/Tricore_ElfRelocationHandler.java index bf66e90f25..054a95cbca 100644 --- a/Ghidra/Processors/tricore/src/main/java/ghidra/app/util/bin/format/elf/relocation/Tricore_ElfRelocationHandler.java +++ b/Ghidra/Processors/tricore/src/main/java/ghidra/app/util/bin/format/elf/relocation/Tricore_ElfRelocationHandler.java @@ -106,6 +106,7 @@ public class Tricore_ElfRelocationHandler rv = symbolValue + addend - offset; byteLength = relocate_BR(memory, relocationAddress, rv); break; + /** case R_TRICORE_10LI: // BO S + A - A[1] break; case R_TRICORE_16LI: // BOL S + A - A[1] @@ -120,16 +121,19 @@ public class Tricore_ElfRelocationHandler break; case R_TRICORE_10OFF: break; + **/ case R_TRICORE_16OFF: rv = symbolValue + addend; byteLength = relocate_BOL(memory, relocationAddress, rv); break; + /** case R_TRICORE_8ABS: break; case R_TRICORE_16ABS: break; case R_TRICORE_16BIT: break; + **/ case R_TRICORE_3POS: rv = symbolValue + addend; byteLength = relocate_3POS(memory, relocationAddress, rv); @@ -162,6 +166,7 @@ public class Tricore_ElfRelocationHandler rv = (symbolValue + addend); byteLength = relocate_5POS2(memory, relocationAddress, rv); break; + /** case R_TRICORE_BRCC: break; case R_TRICORE_BRCZ: @@ -254,22 +259,27 @@ public class Tricore_ElfRelocationHandler break; case R_TRICORE_RELATIVE: break; + **/ case R_TRICORE_BITPOS: // This reads as a pseudo relocation, possibly do RelocationResult.PARTIAL instead? return RelocationResult.SKIPPED; + /** case R_TRICORE_SBREG_S2: break; case R_TRICORE_SBREG_S1: break; case R_TRICORE_SBREG_D: break; + **/ default: - markAsUnhandled(program, relocationAddress, type, symbolIndex, symbolName, elfRelocationContext.getLog()); break; } - if (byteLength < 0) { + + if (byteLength <= 0) { + markAsUnhandled(program, relocationAddress, type, symbolIndex, symbolName, elfRelocationContext.getLog()); return RelocationResult.UNSUPPORTED; } + return new RelocationResult(Status.APPLIED, byteLength); }