mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-25 17:00:36 -09:00
Revert "GP-710 Added register symbol processing to ELF PIC30 import processing. Improved code unit operand format to render memory register name when no reference is present."
This reverts commit c545a6fb5a.
This commit is contained in:
@@ -493,8 +493,7 @@ public class CodeUnitFormat {
|
||||
InstructionScalarInfo info = new InstructionScalarInfo(representations, primaryRef);
|
||||
if (info.hasSingleAddressWithNoScalars()) {
|
||||
int addressIndex = info.getAddressIndex();
|
||||
return markupAddressAsRegister(inst, primaryRef, representations, addressIndex) ||
|
||||
markupAddressAsScalar(inst, primaryRef, representations, addressIndex);
|
||||
return markupAddressAsScalar(inst, primaryRef, representations, addressIndex);
|
||||
}
|
||||
|
||||
if (info.hasNoScalars()) {
|
||||
@@ -565,21 +564,6 @@ public class CodeUnitFormat {
|
||||
return primaryRef == null;
|
||||
}
|
||||
|
||||
private boolean markupAddressAsRegister(Instruction instr, Reference primaryRef,
|
||||
List<Object> representationList, int addressIndex) {
|
||||
if (primaryRef != null) {
|
||||
return false;
|
||||
}
|
||||
// NOTE: although preferrable, access type/size is not considered
|
||||
Address addr = (Address) representationList.get(addressIndex);
|
||||
Register reg = instr.getProgram().getRegister(addr);
|
||||
if (reg != null) {
|
||||
representationList.set(addressIndex, reg.getName());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean markupAddressAsScalar(Instruction instr, Reference primaryRef,
|
||||
List<Object> representationList, int addressIndex) {
|
||||
Address addr = (Address) representationList.get(addressIndex);
|
||||
|
||||
@@ -22,9 +22,7 @@ import ghidra.app.util.bin.format.elf.*;
|
||||
import ghidra.program.model.address.Address;
|
||||
import ghidra.program.model.address.AddressSpace;
|
||||
import ghidra.program.model.lang.Language;
|
||||
import ghidra.program.model.lang.Register;
|
||||
import ghidra.util.exception.CancelledException;
|
||||
import ghidra.util.exception.NoValueException;
|
||||
import ghidra.util.task.TaskMonitor;
|
||||
|
||||
public class PIC30_ElfExtension extends ElfExtension {
|
||||
@@ -221,32 +219,6 @@ public class PIC30_ElfExtension extends ElfExtension {
|
||||
return language.getDefaultDataSpace().equals(start.getAddressSpace().getPhysicalSpace());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Address calculateSymbolAddress(ElfLoadHelper elfLoadHelper, ElfSymbol elfSymbol)
|
||||
throws NoValueException {
|
||||
|
||||
if (elfSymbol.getValue() != 0 || !elfSymbol.isGlobal() ||
|
||||
elfSymbol.getSectionHeaderIndex() != 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String name = elfSymbol.getNameAsString();
|
||||
if (name == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (name.startsWith("_")) {
|
||||
name = name.substring(1);
|
||||
}
|
||||
|
||||
Register reg = elfLoadHelper.getProgram().getRegister(name);
|
||||
if (reg != null && !reg.getAddress().isRegisterAddress()) {
|
||||
return reg.getAddress(); // only consider memory-based registers
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static class PIC30FilteredDataInputStream extends FilterInputStream {
|
||||
|
||||
// BYTES: <byte> <pad>
|
||||
|
||||
Reference in New Issue
Block a user