1
0
mirror of https://github.com/fadden/6502bench.git synced 2025-08-05 09:25:39 +00:00

Ignore project/platform symbols in StdInline

External symbols don't have a file offset, so a JSR to an external
address can't reliably be matched to a label.
This commit is contained in:
Andy McFadden
2021-10-27 20:23:34 -07:00
parent fa04c98dac
commit 07f5396eee
8 changed files with 85 additions and 14 deletions

View File

@@ -112,6 +112,13 @@ namespace RuntimeData.Common {
//mAppRef.DebugLog("Ignoring non-addr label '" + sym.Label + "'");
continue;
}
if (sym.Offset < 0) {
// Ignore project/platform symbols. External symbols are tricky, because
// there can be multiple symbols for a given address. We'd need to know
// which specific symbol was referenced by the JSR, and we don't have that
// information.
continue;
}
foreach (NameMap map in sMap) {
if (sym.Label.StartsWith(map.Prefix)) {
// Offsets will be unique.
@@ -142,10 +149,10 @@ namespace RuntimeData.Common {
public void CheckJsr(int offset, int operand, out bool noContinue) {
noContinue = false;
// Do a quick test on the address.
// Do a quick test on the target address.
int unused;
if (!mInlineAddrs.TryGetValue(operand, out unused)) {
// JSR destination address not recognized.
// JSR destination address not special.
return;
}