mirror of
https://github.com/fadden/6502bench.git
synced 2024-09-11 20:54:37 +00:00
Implemented assembly source generation of non-unique local labels. The new 2023-non-unique-labels test exercises various edge cases (though we're still missing local variable interaction). The format of uniquified labels changed slightly, so the expected output of 2012-label-localizer needed to be updated. This changes the "no opcode mnemonics" and "mask leading underscores" functions into integrated parts of the label localization process.
71 lines
1.2 KiB
ArmAsm
71 lines
1.2 KiB
ArmAsm
!cpu 65c02
|
|
REALLYLONGLABELNAME = $8888 ;that's a long name
|
|
|
|
* = $1000
|
|
nop
|
|
_start lda @start
|
|
lda X_start
|
|
lda pastglob
|
|
lda @__nopped
|
|
@start nop
|
|
@__nopped
|
|
nop
|
|
X_start nop
|
|
pastglob
|
|
nop
|
|
lda nlocal
|
|
nlocal lda #$11
|
|
reach1G nop
|
|
lda reach1G+1
|
|
lda @reach2+2
|
|
@reach2 nop
|
|
reach3G nop
|
|
@_reach4
|
|
nop
|
|
lda @_reach4-2
|
|
lda $00
|
|
beq @L102D
|
|
jsr @_reach4
|
|
jsr _start
|
|
@L102D lda #$22
|
|
lda gtest2
|
|
gtest1 nop
|
|
lda gtest3
|
|
gtest2 nop
|
|
gtest3 nop
|
|
lda #$33
|
|
lda $1041
|
|
topglob nop
|
|
lda @L1043
|
|
nop
|
|
nop
|
|
@L1043 nop
|
|
lda #$44
|
|
globalnm
|
|
jsr @L104A
|
|
nop
|
|
@L104A nop
|
|
nop
|
|
nglobal nop
|
|
globlat jsr nglobal
|
|
bra end
|
|
|
|
end nop
|
|
EXCESSIVELY_LONG_LABEL
|
|
lda REALLYLONGLABELNAME
|
|
@_uname nop
|
|
@X_uname11
|
|
nop
|
|
@X_uname1
|
|
nop
|
|
@X_uname
|
|
nop
|
|
lda #$00
|
|
@AND bne @AND ;local
|
|
JMP1 bne JMP1 ;global
|
|
jmp1 bne jmp1
|
|
TSB1 bne TSB1
|
|
XCE bne XCE
|
|
rts
|
|
|