1
0
mirror of https://github.com/fadden/6502bench.git synced 2024-07-13 14:29:23 +00:00
6502bench/SourceGen/SGTestData/Source
Andy McFadden d3670c48e8 Label rework, part 6
Correct handling of local variables.  We now correctly uniquify them
with regard to non-unique labels.  Because local vars can effectively
have global scope we mostly want to treat them as global, but they're
uniquified relative to other globals very late in the process, so we
can't just throw them in the symbol table and be done.  Fortunately
local variables exist in a separate namespace, so we just need to
uniquify the variables relative to the post-localization symbol table.
In other words, we take the symbol table, apply the label map, and
rename any variable that clashes.

This also fixes an older problem where we weren't masking the
leading '_' on variable labels when generating 64tass output.

The code list now makes non-unique labels obvious, but you can't tell
the difference between unique global and unique local.  What's more,
the default type value in Edit Label is now adjusted to Global for
unique locals that were auto-generated.  To make it a bit easier to
figure out what's what, the Info panel now has a "label type" line
that reports the type.

The 2023-non-unique-labels test had some additional tests added to
exercise conflicts with local variables.  The 2019-local-variables
test output changed slightly because the de-duplicated variable
naming convention was simplified.
2019-11-18 13:36:53 -08:00
..
1000-allops-value-65816.S Initial file commit 2018-09-28 10:05:11 -07:00
1001-allops-zero-65816.S Initial file commit 2018-09-28 10:05:11 -07:00
1002-embedded-instructions.S Initial file commit 2018-09-28 10:05:11 -07:00
1003-flags-and-branches.S Fix code tracing bug 2019-09-17 14:38:16 -07:00
1004-data-recognition.S Initial file commit 2018-09-28 10:05:11 -07:00
2000-allops-value-6502.S Initial file commit 2018-09-28 10:05:11 -07:00
2001-allops-zero-6502.S Initial file commit 2018-09-28 10:05:11 -07:00
2002-allops-value-65C02.S Initial file commit 2018-09-28 10:05:11 -07:00
2003-allops-zero-65C02.S Initial file commit 2018-09-28 10:05:11 -07:00
2004-numeric-types.S Add junk/align directives 2019-10-18 21:00:28 -07:00
2005-string-types.S Initial file commit 2018-09-28 10:05:11 -07:00
2006-operand-formats.S Correctly handle delimiters in character operands 2019-08-14 17:31:15 -07:00
2007-labels-and-symbols.S Progress toward 64tass expression support 2018-10-24 13:17:03 -07:00
2008-address-changes.S Initial file commit 2018-09-28 10:05:11 -07:00
2009-branches-and-banks.cfg Add a blank line between constants and addresses 2019-10-22 22:45:13 -07:00
2009-branches-and-banks.S Add a blank line between constants and addresses 2019-10-22 22:45:13 -07:00
2010-target-adjustment.S Tweak "nearby" label finder 2019-10-29 18:12:22 -07:00
2011-hinting.S Fix handling of data formatting that overlaps with code 2019-09-14 11:44:17 -07:00
2012-label-localizer.S Remap labels that use opcode mnemonics 2019-09-20 15:29:34 -07:00
2013-notes-and-comments.S Initial file commit 2018-09-28 10:05:11 -07:00
2014-label-dp.S Add 2014-label-dp 2018-10-30 16:07:35 -07:00
2016-char-encoding.S PETSCII does DCI 2019-08-20 17:55:12 -07:00
2019-local-variables.S Work around two assembler issues 2019-09-20 14:05:17 -07:00
2020-cycle-counts-65816.S Rename regression test 2020 to reflect the CPU configuration 2019-09-15 17:02:21 -07:00
2021-external-symbols.S External symbol I/O direction and address mask, part 3 (of 3) 2019-10-16 17:32:30 -07:00
2022-extension-scripts.S Correctly handle embedded instruction edge case 2019-10-19 17:28:45 -07:00
2023-non-unique-labels.S Label rework, part 6 2019-11-18 13:36:53 -08:00
allops-common-65C02.S Initial file commit 2018-09-28 10:05:11 -07:00
allops-common-6502.S Initial file commit 2018-09-28 10:05:11 -07:00
allops-common-65816.S Initial file commit 2018-09-28 10:05:11 -07:00