First version committed to git
[zpugcc/jano.git] / toolchain / binutils / gas / testsuite / gas / tic54x / labels.s
blob464b6e8e7367cc2cf3bf12db5ef2b86b8662bd33
1 * local labels
2 * two forms, $[0-9] and label? are allowed
3 * Local labels are undefined/reset in one of four ways:
4 * .newblock
5 * changing sections
6 * entering an include file
7 * leaving an include file
8 .global addra, addrb, addrc
9 label1: ld addra,a
10 sub addrb,a
11 bc $1, alt ; generates frag!
12 ld addrb, a
13 b $2
14 $1: ld addra,a
15 $2 add addrc,a
16 .newblock
17 bc $1,alt
18 stl a, addrc
19 $1 nop
21 * #1, First definition of local label 'lab'
22 nop
23 lab? add #1,a ; reports as line 17?
24 b lab?
25 * #2, Included file also defines local label 'lab'
26 .copy labels.inc
27 * #3, Next definition; exit from .copy clears all locals
28 lab? add #3,a ; reports as line 22?
29 b lab?
30 * #4, Next definition is within macro; supersedes previous definition while
31 * within the macro
32 mac .macro
33 lab? add #4,a ; line 31?
34 b lab?
35 .endm
36 * Macro invocation
37 mac
38 * This reference should resolve to definition #3
39 after_macro:
40 b lab?
41 * Section change clears all definitions; it's a CODE section if we see insns
42 .sect new_section
43 nop
44 lab? add #5,a
45 nop
46 nop
47 b lab?
48 * Newblock directive clears local labels
49 .newblock
50 lab? add #6,a
51 nop
52 nop
53 b lab?
54 .end