blob: 464b6e8e7367cc2cf3bf12db5ef2b86b8662bd33 [file] [log] [blame]
* local labels
* two forms, $[0-9] and label? are allowed
* Local labels are undefined/reset in one of four ways:
* .newblock
* changing sections
* entering an include file
* leaving an include file
.global addra, addrb, addrc
label1: ld addra,a
sub addrb,a
bc $1, alt ; generates frag!
ld addrb, a
b $2
$1: ld addra,a
$2 add addrc,a
.newblock
bc $1,alt
stl a, addrc
$1 nop
* #1, First definition of local label 'lab'
nop
lab? add #1,a ; reports as line 17?
b lab?
* #2, Included file also defines local label 'lab'
.copy labels.inc
* #3, Next definition; exit from .copy clears all locals
lab? add #3,a ; reports as line 22?
b lab?
* #4, Next definition is within macro; supersedes previous definition while
* within the macro
mac .macro
lab? add #4,a ; line 31?
b lab?
.endm
* Macro invocation
mac
* This reference should resolve to definition #3
after_macro:
b lab?
* Section change clears all definitions; it's a CODE section if we see insns
.sect new_section
nop
lab? add #5,a
nop
nop
b lab?
* Newblock directive clears local labels
.newblock
lab? add #6,a
nop
nop
b lab?
.end