File: labels.s

package info (click to toggle)
binutils-m68hc1x 1%3A2.35.1-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 335,580 kB
  • sloc: ansic: 1,187,755; asm: 674,290; cpp: 130,744; exp: 70,774; makefile: 56,048; sh: 22,128; yacc: 14,459; lisp: 13,803; perl: 2,112; ada: 1,681; lex: 1,649; pascal: 1,446; cs: 879; sed: 195; xml: 95; awk: 25
file content (55 lines) | stat: -rw-r--r-- 1,145 bytes parent folder | download | duplicates (47)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
* 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