Initial revision
[binutils.git] / gas / testsuite / gas / arm / thumb.s
blobea4b82d143870e02bab3c05cee674815e839e5f1
1 .text
2 .code 16
3 .foo:
4 lsl r2, r1, #3
5 lsr r3, r4, #31
6 wibble/data:
7 asr r7, r0, #5
9 lsl r1, r2, #0
10 lsr r3, r4, #0
11 asr r4, r5, #0
13 lsr r6, r7, #32
14 asr r0, r1, #32
16 add r1, r2, r3
17 add r2, r4, #2
18 sub r3, r5, r7
19 sub r2, r4, #7
21 mov r4, #255
22 cmp r3, #250
23 add r6, #123
24 sub r5, #128
26 and r3, r5
27 eor r4, r6
28 lsl r1, r0
29 lsr r2, r3
30 asr r4, r6
31 adc r5, r7
32 sbc r0, r4
33 ror r1, r4
34 tst r2, r5
35 neg r1, r1
36 cmp r2, r3
37 cmn r1, r4
38 orr r0, r3
39 mul r4, r5
40 bic r5, r7
41 mvn r5, r5
43 add r1, r13
44 add r12, r2
45 add r9, r9
46 cmp r1, r14
47 cmp r8, r0
48 cmp r12, r14
49 mov r0, r9
50 mov r9, r4
51 mov r8, r8
52 bx r7
53 bx r8
54 .align 0
55 bx pc
57 ldr r3, [pc, #128]
58 ldr r4, bar
60 str r0, [r1, r2]
61 strb r1, [r2, r4]
62 ldr r5, [r6, r7]
63 ldrb r2, [r4, r5]
65 .align 0
66 bar:
67 strh r1, [r2, r3]
68 ldrh r3, [r4, r0]
69 ldsb r1, [r6, r7]
70 ldsh r2, [r0, r5]
72 str r3, [r3, #124]
73 ldr r1, [r4, #124]
74 ldr r5, [r5]
75 strb r1, [r5, #31]
76 strb r1, [r4, #5]
77 strb r2, [r6]
79 strh r4, [r5, #62]
80 ldrh r5, [r0, #4]
81 ldrh r3, [r2]
83 str r3, [r13, #1020]
84 ldr r1, [r13, #44]
85 ldr r2, [r13]
87 add r7, r15, #1020
88 add r4, r13, #512
90 add r13, #268
91 add r13, #-104
92 sub r13, #268
93 sub r13, #-108
95 push {r0, r1, r2, r4}
96 push {r0, r3-r7, lr}
97 pop {r3, r4, r7}
98 pop {r0-r7, r15}
100 stmia r3!, {r0, r1, r4-r7}
101 ldmia r0!, {r1-r7}
103 beq bar
104 bne bar
105 bcs bar
106 bcc bar
107 bmi bar
108 bpl bar
109 bvs bar
110 bvc bar
111 bhi bar
112 bls bar
113 bge bar
114 bgt bar
115 blt bar
116 bgt bar
117 ble bar
118 bhi bar
119 blo bar
120 bul bar
122 close:
123 lsl r4, r5, #near - close
124 near:
125 add r2, r3, #near - close
127 add sp, sp, #127 << 2
128 sub sp, sp, #127 << 2
129 add r0, sp, #255 << 2
130 add r0, pc, #255 << 2
132 add sp, sp, #bar - .foo
133 sub sp, sp, #bar - .foo
134 add r0, sp, #bar - .foo
135 add r0, pc, #bar - .foo
137 add r1, #bar - .foo
138 mov r6, #bar - .foo
139 cmp r7, #bar - .foo
144 .arm
145 .localbar:
146 b .localbar
147 b .wombat
148 bl .localbar
149 bl .wombat
151 bx r0
152 swi 0x123456
154 .thumb
155 @ The following will be disassembled incorrectly if we do not
156 @ have a Thumb symbol defined before the first Thumb instruction:
157 morethumb:
158 adr r0, forwardonly
160 b .foo
161 b .wombat
162 bl .foo
163 bl .wombat
165 bx r0
167 swi 0xff
168 .align 0
169 forwardonly:
170 beq .wombat
171 bne .wombat
172 bcs .wombat
173 bcc .wombat
174 bmi .wombat
175 bpl .wombat
176 bvs .wombat
177 bvc .wombat
178 bhi .wombat
179 bls .wombat
180 bge .wombat
181 bgt .wombat
182 blt .wombat
183 bgt .wombat
184 ble .wombat
185 bhi .wombat
186 blo .wombat
187 bul .wombat
189 .back:
190 bl .local
191 .space (1 << 11) @ leave space to force long offsets
192 .local:
193 bl .back