OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [binutils-2.20.1/] [gas/] [testsuite/] [gas/] [arm/] [t16-bad.s] - Blame information for rev 304

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 205 julius
        @ Things you can't do with 16-bit Thumb instructions, but you can
2
        @ do with the equivalent ARM instruction.  Does not include errors
3
        @ caught by fixup processing (e.g. out-of-range immediates).
4
 
5
        .text
6
        .code 16
7
        .thumb_func
8
l:
9
        @ Arithmetic instruction templates
10
        .macro  ar2 opc
11
        \opc    r8,r0
12
        \opc    r0,r8
13
        .endm
14
        .macro  ar2sh opc
15
        ar2     \opc
16
        \opc    r0,#12
17
        \opc    r0,r1,lsl #2
18
        \opc    r0,r1,lsl r3
19
        .endm
20
        .macro  ar2r opc
21
        ar2     \opc
22
        \opc    r0,r1,ror #8
23
        .endm
24
        .macro  ar3 opc
25
        \opc    r1,r2,r3
26
        \opc    r8,r0
27
        \opc    r0,r8
28
        .endm
29
        .macro ar3sh opc
30
        ar3     \opc
31
        \opc    r0,#12
32
        \opc    r0,r1,lsl #2
33
        \opc    r0,r1,lsl r3
34
        .endm
35
 
36
        ar2sh   tst
37
        ar2sh   cmn
38
        ar2sh   mvn
39
        ar2     neg
40
        ar2     rev
41
        ar2     rev16
42
        ar2     revsh
43
        ar2r    sxtb
44
        ar2r    sxth
45
        ar2r    uxtb
46
        ar2r    uxth
47
 
48
        ar3sh   adc
49
        ar3sh   and
50
        ar3sh   bic
51
        ar3sh   eor
52
        ar3sh   orr
53
        ar3sh   sbc
54
        ar3     mul
55
 
56
        @ Shift instruction template
57
        .macro  shift opc
58
        \opc    r8,r0,#12  @ form 1
59
        \opc    r0,r8,#12
60
        ar2     \opc       @ form 2
61
        .endm
62
        shift   asr
63
        shift   lsl
64
        shift   lsr
65
        shift   ror
66
        ror     r0,r1,#12
67
 
68
        @ add/sub/mov/cmp are idiosyncratic
69
        add     r0,r1,lsl #2
70
        add     r0,r1,lsl r3
71
        add     r8,r0,#1        @ form 1
72
        add     r0,r8,#1
73
        add     r8,#10          @ form 2
74
        add     r8,r1,r2        @ form 3
75
        add     r1,r8,r2
76
        add     r1,r2,r8
77
        add     r8,pc,#4        @ form 5
78
        add     r8,sp,#4        @ form 6
79
 
80
        ar3sh   sub
81
        sub     r8,r0,#1        @ form 1
82
        sub     r0,r8,#1
83
        sub     r8,#10          @ form 2
84
        sub     r8,r1,r2        @ form 3
85
        sub     r1,r8,r2
86
        sub     r1,r2,r8
87
 
88
        cmp     r0,r1,lsl #2
89
        cmp     r0,r1,lsl r3
90
        cmp     r8,#255
91
 
92
        mov     r0,r1,lsl #2
93
        mov     r0,r1,lsl r3
94
        mov     r8,#255
95
 
96
        @ Load/store template
97
        .macro  ldst opc
98
        \opc    r8,[r0]
99
        \opc    r0,[r8]
100
        \opc    r0,[r0,r8]
101
        \opc    r0,[r1,#4]!
102
        \opc    r0,[r1],#4
103
        \opc    r0,[r1,-r2]
104
        \opc    r0,[r1],r2
105
        .endm
106
        ldst    ldr
107
        ldst    ldrb
108
        ldst    ldrh
109
        ldst    ldrsb
110
        ldst    ldrsh
111
        ldst    str
112
        ldst    strb
113
        ldst    strh
114
 
115
        ldr     r0,[r1,r2,lsl #1]
116
        str     r0,[r1,r2,lsl #1]
117
 
118
        @ Load/store multiple
119
        ldmia   r8!,{r1,r2}
120
        ldmia   r7!,{r8}
121
        ldmia   r7,{r1,r2}
122
        ldmia   r7!,{r1,r7}
123
 
124
        stmia   r8!,{r1,r2}
125
        stmia   r7!,{r8}
126
        stmia   r7,{r1,r2}
127
        stmia   r7!,{r1,r7}
128
 
129
        push    {r8,r9}
130
        pop     {r8,r9}
131
 
132
        @ Miscellaneous
133
        bkpt    #257
134
        cpsie   ai,#5
135
        cpsid   ai,#5
136
 
137
        @ Conditional suffixes
138
        addeq   r0,r1,r2
139
        @ low register non flag setting add.
140
        .syntax unified
141
        add     r0, r1
142
 
143
        @ Multiply
144
        .syntax divided
145
        mul     r0, r0, r8
146
        mul     r0, r8, r0
147
        mul     r8, r0, r0

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.