1;;; Test 68HC11 linker relaxation and fixup of brclr/brset branches
2;;;
3	.sect .text
4	.globl _start
5_start:
6start:
7	brclr	140,x#200,L8	; Branch adjustment covers the whole test
8;;; The 'addd' is relaxed and we win 1 byte.  The next brclr/brset
9;;; branch must be fixed and reduced by 1.  We check for different
10;;; addressing modes because the instruction has different opcode and
11;;; different lengths.
12L1:
13	addd	_toto
14	brclr	20,x,#3,L1
15	brclr	90,x,#99,L3	; Likewise with forward branch
16L2:
17	addd	_toto
18	brclr	19,y,#4,L2
19	brclr	91,y,#98,L4
20L3:
21	addd	_toto
22	brset	18,x,#5,L3
23	brset	92,x,#97,L5
24L4:
25	addd	_toto
26	brset	17,y,#6,L4
27	brset	93,y,#96,L5
28L5:
29	addd	_toto
30	brset	*_table,#7,L5
31	brset	*_table+10,#95,L7
32L6:
33	addd	_toto
34	brclr	*_table+1,#8,L6
35	brset	*_table+11,#94,L8
36L7:
37	addd	_toto
38	brclr	*_table+1,#8,L6
39L8:
40	brclr	140,x#200,_start ; Branch adjustment covers the whole test
41	rts
42
43	.sect	.page0
44_bar:
45	.long	0
46_toto:
47	.long	0
48	.skip	32
49stack:
50	.skip	10
51_table:
52