diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/mem/MemoryBlockSourceInfoDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/mem/MemoryBlockSourceInfoDB.java index 94b862b469..70eb93511c 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/mem/MemoryBlockSourceInfoDB.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/mem/MemoryBlockSourceInfoDB.java @@ -81,8 +81,7 @@ class MemoryBlockSourceInfoDB implements MemoryBlockSourceInfo { @Override public long getFileBytesOffset(Address address) { if (subBlock instanceof FileBytesSubMemoryBlock && contains(address)) { - long blockOffset = address.subtract(getMinAddress()); - long subBlockOffset = blockOffset - subBlock.subBlockOffset; + long subBlockOffset = address.subtract(getMinAddress()); return ((FileBytesSubMemoryBlock) subBlock).getFileBytesOffset() + subBlockOffset; } return -1; diff --git a/Ghidra/Framework/SoftwareModeling/src/test/java/ghidra/program/database/mem/MemBlockDBTest.java b/Ghidra/Framework/SoftwareModeling/src/test/java/ghidra/program/database/mem/MemBlockDBTest.java index f676677139..e1f07a4309 100644 --- a/Ghidra/Framework/SoftwareModeling/src/test/java/ghidra/program/database/mem/MemBlockDBTest.java +++ b/Ghidra/Framework/SoftwareModeling/src/test/java/ghidra/program/database/mem/MemBlockDBTest.java @@ -56,7 +56,7 @@ public class MemBlockDBTest extends AbstractGenericTest { txID = handle.startTransaction(); addressFactory = language.getAddressFactory(); - AddressMapDB addrMap = (AddressMapDB) program.getAddressMap(); + AddressMapDB addrMap = program.getAddressMap(); Lock lock = new Lock("Test"); int openMode = DBConstants.CREATE; mem = new MemoryMapDB(handle, addrMap, openMode, true, lock); @@ -396,7 +396,7 @@ public class MemBlockDBTest extends AbstractGenericTest { sourceInfo = sourceInfos.get(1); assertEquals(fileBytes, sourceInfo.getFileBytes().get()); - assertEquals(70, sourceInfo.getFileBytesOffset()); + assertEquals(70, sourceInfo.getFileBytesOffset(sourceInfo.getMinAddress())); assertEquals(10, sourceInfo.getLength()); } diff --git a/Ghidra/Processors/tricore/data/languages/tricore.cspec b/Ghidra/Processors/tricore/data/languages/tricore.cspec index 82cccee75a..daf1e831d9 100644 --- a/Ghidra/Processors/tricore/data/languages/tricore.cspec +++ b/Ghidra/Processors/tricore/data/languages/tricore.cspec @@ -33,19 +33,28 @@ + + + + + + - + - + - + + + + - + - + @@ -54,31 +63,35 @@ + + + - - + + - + + + + + - - - + - + + + + @@ -91,6 +104,10 @@ + + + + @@ -101,64 +118,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +