1#objdump: -S -r
2#as: -m68hc12 -gdwarf2
3#name: 68HC12 PC-relative addressing modes (bug-1825)
4
5.*:     file format elf32\-m68hc12
6
7Disassembly of section \.text:
8
90+ <_main>:
10;;; .*
11;;;
12	\.sect \.text
13	\.globl _main
14_main:
15	nop
16   0:	a7          	nop
17	ldx	L1,pc		; Assemble to 5\-bit > 0 offset
18   1:	ee c2       	ldx	0x2,PC \{0x5 <L1>\}
19	bra	L2
20   3:	20 02       	bra	0x7 <L2>
21			3: R_M68HC12_RL_JUMP	\*ABS\*
22
230+5 <L1>:
24   5:	aa bb       	oraa	5,SP\-
25
260+7 <L2>:
27L1:
28	.dc.w	0xaabb
29L2:
30	subd	L1,pc		; Assemble to 5\-bit < 0 offset
31   7:	a3 dc       	subd	0xfffc,PC \{0x5 <L1>\}
32
330+9 <L3>:
34   9:	a7          	nop
35   a:	a7          	nop
36   b:	a7          	nop
37   c:	a7          	nop
38   d:	a7          	nop
39   e:	a7          	nop
40   f:	a7          	nop
41  10:	a7          	nop
42  11:	a7          	nop
43  12:	a7          	nop
44  13:	a7          	nop
45  14:	a7          	nop
46  15:	a7          	nop
47  16:	a7          	nop
48L3:
49	.ds.b	14, 0xA7
50	ldab	L3,pc		; 5\-bit < 0 offset
51  17:	e6 d0       	ldab	0xfff0,PC \{0x9 <L3>\}
52	ldab	L4,pc		; 5\-bit > 0 offset
53  19:	e6 cf       	ldab	0xf,PC \{0x2a <L4>\}
54	...
55
560+2a <L4>:
57	...
58	.skip	15
59L4:
60	.skip	128
61	subd	L4,pc		; 9\-bit < 0 offset
62  aa:	a3 f9 7d    	subd	0xff7d,PC \{0x2a <L4>\}
63	addd	L5,pc		; 9\-bit > 0 offset
64  ad:	e3 f8 80    	addd	0x80,PC \{0x130 <L5>\}
65	...
66
670+130 <L5>:
68	...
69 22c:	00          	bgnd
70	.skip	128
71L5:
72	.skip	256\-3
73	orab	L5,pc		; 9 bit < 0 offset \(min value\)
74 22d:	ea f9 00    	orab	0xff00,PC \{0x130 <L5>\}
75	oraa	L6,pc		; 9 bit > 0 offset \(max value\)
76 230:	aa f8 ff    	oraa	0xff,PC \{0x332 <L6>\}
77	...
78
790+332 <L6>:
80	...
81 42e:	00          	bgnd
82 42f:	00          	bgnd
83	.skip	255
84L6:
85	.skip	256\-2
86	orab	L6,pc		; 16 bit < 0 offset
87 430:	ea fa fe fe 	orab	0xfefe,PC \{0x332 <L6>\}
88	anda	_main,pc	; 16 bit < 0 offset
89 434:	a4 fa fb c8 	anda	0xfbc8,PC \{0x0 <_main>\}
90	andb	L7,pc
91 438:	e4 fa 01 00 	andb	0x100,PC \{0x53c <L7>\}
92	...
93
940+53c <L7>:
95	.skip	256
96L7:
97	stab	external,pc	; External 16\-bit PCREL
98 53c:	6b fa fa c0 	stab	0xfac0,PC \{0x0 <_main>\}
99			53e: R_M68HC12_PCREL_16	external
100	ldd	_table,pc
101 540:	ec cf       	ldd	0xf,PC \{0x551 <_table>\}
102	addd	_table\+2,pc
103 542:	e3 cf       	addd	0xf,PC \{0x553 <_table\+0x2>\}
104	subd	_table\+4,pc
105 544:	a3 cf       	subd	0xf,PC \{0x555 <_table\+0x4>\}
106	addd	_table\+8,pc
107 546:	e3 f8 10    	addd	0x10,PC \{0x559 <_table\+0x8>\}
108	addd	_table\+12,pc
109 549:	e3 f8 11    	addd	0x11,PC \{0x55d <_table\+0xc>\}
110	addd	_table\+16,pc
111 54c:	e3 f8 12    	addd	0x12,PC \{0x561 <_table\+0x10>\}
112	rts
113 54f:	3d          	rts
114	nop
115 550:	a7          	nop
116
1170+551 <_table>:
118	...
119_table:
120	.ds.b	16,0
121	leax	_table,sp	; 16\-bit absolute reloc
122 561:	1a f2 00 00 	leax	0x0,SP
123			563: R_M68HC12_16	_table
124	leay	_table,x
125 565:	19 e2 00 00 	leay	0x0,X
126			567: R_M68HC12_16	_table
127	leax	_table,y
128 569:	1a ea 00 00 	leax	0x0,Y
129			56b: R_M68HC12_16	_table
130