mirror of
https://github.com/fadden/6502bench.git
synced 2024-09-10 13:54:52 +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.
72 lines
1.3 KiB
ArmAsm
72 lines
1.3 KiB
ArmAsm
.setcpu "65C02"
|
|
REALLYLONGLABELNAME = $8888 ;that's a long name
|
|
|
|
; .segment "SEG000"
|
|
.org $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
|
|
|