Upload Tizen:Base source
[external/binutils.git] / gas / testsuite / gas / arm / thumb.s
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
8
9         lsl     r1, r2, #0
10         lsr     r3, r4, #0
11         asr     r4, r5, #0
12
13         lsr     r6, r7, #32
14         asr     r0, r1, #32
15
16         add     r1, r2, r3
17         add     r2, r4, #2
18         sub     r3, r5, r7
19         sub     r2, r4, #7
20
21         mov     r4, #255
22         cmp     r3, #250
23         add     r6, #123
24         sub     r5, #128
25
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
42
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
56
57         ldr     r3, [pc, #128]
58         ldr     r4, bar
59
60         str     r0, [r1, r2]
61         strb    r1, [r2, r4]
62         ldr     r5, [r6, r7]
63         ldrb    r2, [r4, r5]
64         
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]
71
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]
78
79         strh    r4, [r5, #62]
80         ldrh    r5, [r0, #4]
81         ldrh    r3, [r2]
82
83         str     r3, [r13, #1020]
84         ldr     r1, [r13, #44]
85         ldr     r2, [r13]
86
87         add     r7, r15, #1020
88         add     r4, r13, #512
89
90         add     r13, #268
91         add     r13, #-104
92         sub     r13, #268
93         sub     r13, #-108
94
95         push    {r0, r1, r2, r4}
96         push    {r0, r3-r7, lr}
97         pop     {r3, r4, r7}
98         pop     {r0-r7, r15}
99
100         stmia   r3!, {r0, r1, r4-r7}
101         ldmia   r0!, {r1-r7}
102
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
121         bal     bar
122
123 close:
124         lsl     r4, r5, #near - close
125 near:
126         add     r2, r3, #near - close
127
128         add     sp, sp, #127 << 2
129         sub     sp, sp, #127 << 2
130         add     r0, sp, #255 << 2
131         add     r0, pc, #255 << 2
132
133         add     sp, sp, #bar - .foo
134         sub     sp, sp, #bar - .foo
135         add     r0, sp, #bar - .foo
136         add     r0, pc, #bar - .foo
137
138         add     r1, #bar - .foo
139         mov     r6, #bar - .foo
140         cmp     r7, #bar - .foo
141
142         nop
143         nop
144
145         .arm
146 .localbar:
147         b       .localbar
148         b       .back
149         bl      .localbar
150         bl      .back
151
152         bx      r0
153         swi     0x123456
154
155         .thumb
156         @ The following will be disassembled incorrectly if we do not
157         @ have a Thumb symbol defined before the first Thumb instruction:
158 morethumb:
159         adr     r0, forwardonly
160
161         b       .foo
162         b       .back
163         bl      .foo
164         bl      .back
165
166         bx      r0
167
168         swi     0xff
169         .align  0
170 forwardonly:
171         beq     .back
172         bne     .back
173         bcs     .back
174         bcc     .back
175         bmi     .back
176         bpl     .back
177         bvs     .back
178         bvc     .back
179         bhi     .back
180         bls     .back
181         bge     .back
182         bgt     .back
183         blt     .back
184         bgt     .back
185         ble     .back
186         bhi     .back
187         blo     .back
188         bul     .back
189
190 .back:
191         bl      .local
192         .space  (1 << 11)       @ leave space to force long offsets
193 .local:
194         bl      .back
195
196         ldr     r0, .target
197         ldr     r0, .target
198         ldr     r0, [pc, #4]
199         ldr     r0, [pc, #4]
200 .target:
201 baz:
202         mov     r0, r1
203         nop