gdb/testsuite: do minor clean-up in gdb.cp/rvalue-ref-overload.exp
[deliverable/binutils-gdb.git] / ld / testsuite / ld-m68hc11 / relax-group.s
CommitLineData
19dd1b48
SC
1;;; Test 68HC11 linker relaxation (group relax)
2;;;
3 .sect .text
4 .globl _start
5_start:
6;;;
7;;; The following group of instructions are adjusted.
8;;;
9 .relax L1x
10 ldx #table
11 bset 0,x #4
12L1x:
13 .relax L1y
14 ldy #table
15 bset 0,y #4
16L1y:
17 .relax L2x
18 ldx #table+3
19 bset 0,x #4
20 bset 1,x #8
21L2x:
22 .relax L2y
23 ldy #table+3
24 bset 0,y #4
25 bset 1,y #8
26L2y:
27 .relax L3x
28 ldx #table+6
29 bset 0,x #4
30 bset 1,x #8
31 bset 2,x #12
32 bset 3,x #12
33 bset 4,x #12
34 bset 5,x #12
35L3x:
36 .relax L3y
37 ldy #table+6
38 bset 0,y #4
39 bset 1,y #8
40 bset 2,y #12
41 bset 3,y #12
42 bset 4,y #12
43 bset 5,y #12
44L3y:
45 ;; Next branch is always relative. It must be adjusted while
46 ;; above instructions are relaxed.
47 bra _start
48;;;
49;;; This group has the first two bset insn relaxable while the
50;;; others are not. The ldx/ldy must not be removed.
51;;;
52 .relax L4x
53 ldx #table+0xfe
54 bset 0,x #4
55 bset 1,x #8
56 bset 2,x #12
57 bset 3,x #12
58 bset 4,x #12
59 bset 5,x #12
60L4x:
61 .relax L4y
62 ldy #table+0xfe
63 bset 0,y #4
64 bset 1,y #8
65 bset 2,y #12
66 bset 3,y #12
67 bset 4,y #12
68 bset 5,y #12
69L4y:
70;;;
71;;; Relax group for bclr
72;;;
73 .relax L5x
74 ldx #table+10
75 bclr 0,x #4
76 bclr 1,x #8
77L5x:
78 .relax L5y
79 ldy #table+16
80 bclr 10,y #4
81 bclr 11,y #8
82L5y:
83;;;
84;;; Relax group for brset (with backward branch)
85;;;
86 .relax L6x
87 ldx #table+8
88 brset 0,x #4 L5y
89L6x:
90 .relax L7x
91 ldy #table+8
92 brset 0,y #4 L6x
93L7x:
94;;;
95;;; Relax group for brset (with forward branch)
96;;;
97 .relax L8x
98 ldx #table+8
99 brset 0,x #4 brend
100L8x:
101 .relax L8y
102 ldy #table+8
103 brset 0,y #4 brend
104L8y:
105;;;
106;;; Relax group for brclr (with backward branch)
107;;;
108 .relax L9x
109 ldx #table+8
110 brclr 0,x #4 L8y
111L9x:
112 .relax L9y
113 ldy #table+8
114 brclr 0,y #4 L9x
115L9y:
116;;;
117;;; Relax group for brclr (with forward branch)
118;;;
119 .relax L10x
120 ldx #table+8
121 brclr 0,x #4 brend
122L10x:
123 .relax L10y
124 ldy #table+8
125 brclr 0,y #4 brend
126L10y:
127 nop
128brend:
129;;;
130;;; The following are wrong use of .relax groups.
131;;;
132 .relax w1
133w1:
134 .relax w2
135 bset 0,x #4
136w2:
137 .relax w3
138 ldx #table
139w3:
140 .relax w4
141 ldy #table+8
142w4:
143 .relax w5
144 rts
145w5:
146;;;
147;;; Next insn is not in a .relax group
148 ldx #table
149 bset 0,x #5
150 bra _start
151 rts
152
153 .sect .page0
154 .globl table
155table: .long 0
156table4: .long 0
157table8: .long 0
158 .skip 10
159end_table:
160 .long 0
161
This page took 0.722085 seconds and 4 git commands to generate.