1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
|
#objdump: -dr --prefix-addresses --show-raw-insn
#name: VFP Double-precision instructions
#as: -mfpu=vfp
# Test the ARM VFP Double Precision instructions
.*: +file format .*arm.*
Disassembly of section .text:
0+000 <[^>]*> eeb40bc0 (vcmpe\.f64|fcmped) d0, d0
0+004 <[^>]*> eeb50bc0 (vcmpe\.f64 d0, #0.0|fcmpezd d0)
0+008 <[^>]*> eeb40b40 (vcmp\.f64|fcmpd) d0, d0
0+00c <[^>]*> eeb50b40 (vcmp\.f64 d0, #0.0|fcmpzd d0)
0+010 <[^>]*> eeb00bc0 (vabs\.f64|fabsd) d0, d0
0+014 <[^>]*> eeb00b40 (vmov\.f64|fcpyd) d0, d0
0+018 <[^>]*> eeb10b40 (vneg\.f64|fnegd) d0, d0
0+01c <[^>]*> eeb10bc0 (vsqrt\.f64|fsqrtd) d0, d0
0+020 <[^>]*> ee300b00 (vadd\.f64|faddd) d0, d0, d0
0+024 <[^>]*> ee800b00 (vdiv\.f64|fdivd) d0, d0, d0
0+028 <[^>]*> ee000b00 (vmla\.f64|fmacd) d0, d0, d0
0+02c <[^>]*> ee100b00 (vnmls\.f64|fmscd) d0, d0, d0
0+030 <[^>]*> ee200b00 (vmul\.f64|fmuld) d0, d0, d0
0+034 <[^>]*> ee000b40 (vmls\.f64|fnmacd) d0, d0, d0
0+038 <[^>]*> ee100b40 (vnmla\.f64|fnmscd) d0, d0, d0
0+03c <[^>]*> ee200b40 (vnmul\.f64|fnmuld) d0, d0, d0
0+040 <[^>]*> ee300b40 (vsub\.f64|fsubd) d0, d0, d0
0+044 <[^>]*> ed900b00 vldr d0, \[r0\]
0+048 <[^>]*> ed800b00 vstr d0, \[r0\]
0+04c <[^>]*> ec900b02 vldmia r0, {d0}
0+050 <[^>]*> ec900b02 vldmia r0, {d0}
0+054 <[^>]*> ecb00b02 vldmia r0!, {d0}
0+058 <[^>]*> ecb00b02 vldmia r0!, {d0}
0+05c <[^>]*> ed300b02 vldmdb r0!, {d0}
0+060 <[^>]*> ed300b02 vldmdb r0!, {d0}
0+064 <[^>]*> ec800b02 vstmia r0, {d0}
0+068 <[^>]*> ec800b02 vstmia r0, {d0}
0+06c <[^>]*> eca00b02 vstmia r0!, {d0}
0+070 <[^>]*> eca00b02 vstmia r0!, {d0}
0+074 <[^>]*> ed200b02 vstmdb r0!, {d0}
0+078 <[^>]*> ed200b02 vstmdb r0!, {d0}
0+07c <[^>]*> eeb80bc0 (vcvt\.f64\.s32|fsitod) d0, s0
0+080 <[^>]*> eeb80b40 (vcvt\.f64\.u32|fuitod) d0, s0
0+084 <[^>]*> eebd0b40 (vcvtr\.s32\.f64|ftosid) s0, d0
0+088 <[^>]*> eebd0bc0 (vcvt\.s32\.f64|ftosizd) s0, d0
0+08c <[^>]*> eebc0b40 (vcvtr\.u32\.f64|ftouid) s0, d0
0+090 <[^>]*> eebc0bc0 (vcvt\.u32\.f64|ftouizd) s0, d0
0+094 <[^>]*> eeb70ac0 (vcvt\.f64\.f32|fcvtds) d0, s0
0+098 <[^>]*> eeb70bc0 (vcvt\.f32\.f64|fcvtsd) s0, d0
0+09c <[^>]*> ee300b10 vmov\.32 r0, d0\[1\]
0+0a0 <[^>]*> ee100b10 vmov\.32 r0, d0\[0\]
0+0a4 <[^>]*> ee200b10 vmov\.32 d0\[1\], r0
0+0a8 <[^>]*> ee000b10 vmov\.32 d0\[0\], r0
0+0ac <[^>]*> eeb51b40 (vcmp\.f64 d1, #0.0|fcmpzd d1)
0+0b0 <[^>]*> eeb52b40 (vcmp\.f64 d2, #0.0|fcmpzd d2)
0+0b4 <[^>]*> eeb5fb40 (vcmp\.f64 d15, #0.0|fcmpzd d15)
0+0b8 <[^>]*> eeb40b41 (vcmp\.f64|fcmpd) d0, d1
0+0bc <[^>]*> eeb40b42 (vcmp\.f64|fcmpd) d0, d2
0+0c0 <[^>]*> eeb40b4f (vcmp\.f64|fcmpd) d0, d15
0+0c4 <[^>]*> eeb41b40 (vcmp\.f64|fcmpd) d1, d0
0+0c8 <[^>]*> eeb42b40 (vcmp\.f64|fcmpd) d2, d0
0+0cc <[^>]*> eeb4fb40 (vcmp\.f64|fcmpd) d15, d0
0+0d0 <[^>]*> eeb45b4c (vcmp\.f64|fcmpd) d5, d12
0+0d4 <[^>]*> eeb10b41 (vneg\.f64|fnegd) d0, d1
0+0d8 <[^>]*> eeb10b42 (vneg\.f64|fnegd) d0, d2
0+0dc <[^>]*> eeb10b4f (vneg\.f64|fnegd) d0, d15
0+0e0 <[^>]*> eeb11b40 (vneg\.f64|fnegd) d1, d0
0+0e4 <[^>]*> eeb12b40 (vneg\.f64|fnegd) d2, d0
0+0e8 <[^>]*> eeb1fb40 (vneg\.f64|fnegd) d15, d0
0+0ec <[^>]*> eeb1cb45 (vneg\.f64|fnegd) d12, d5
0+0f0 <[^>]*> ee300b01 (vadd\.f64|faddd) d0, d0, d1
0+0f4 <[^>]*> ee300b02 (vadd\.f64|faddd) d0, d0, d2
0+0f8 <[^>]*> ee300b0f (vadd\.f64|faddd) d0, d0, d15
0+0fc <[^>]*> ee310b00 (vadd\.f64|faddd) d0, d1, d0
0+100 <[^>]*> ee320b00 (vadd\.f64|faddd) d0, d2, d0
0+104 <[^>]*> ee3f0b00 (vadd\.f64|faddd) d0, d15, d0
0+108 <[^>]*> ee301b00 (vadd\.f64|faddd) d1, d0, d0
0+10c <[^>]*> ee302b00 (vadd\.f64|faddd) d2, d0, d0
0+110 <[^>]*> ee30fb00 (vadd\.f64|faddd) d15, d0, d0
0+114 <[^>]*> ee39cb05 (vadd\.f64|faddd) d12, d9, d5
0+118 <[^>]*> eeb70ae0 (vcvt\.f64\.f32|fcvtds) d0, s1
0+11c <[^>]*> eeb70ac1 (vcvt\.f64\.f32|fcvtds) d0, s2
0+120 <[^>]*> eeb70aef (vcvt\.f64\.f32|fcvtds) d0, s31
0+124 <[^>]*> eeb71ac0 (vcvt\.f64\.f32|fcvtds) d1, s0
0+128 <[^>]*> eeb72ac0 (vcvt\.f64\.f32|fcvtds) d2, s0
0+12c <[^>]*> eeb7fac0 (vcvt\.f64\.f32|fcvtds) d15, s0
0+130 <[^>]*> eef70bc0 (vcvt\.f32\.f64|fcvtsd) s1, d0
0+134 <[^>]*> eeb71bc0 (vcvt\.f32\.f64|fcvtsd) s2, d0
0+138 <[^>]*> eef7fbc0 (vcvt\.f32\.f64|fcvtsd) s31, d0
0+13c <[^>]*> eeb70bc1 (vcvt\.f32\.f64|fcvtsd) s0, d1
0+140 <[^>]*> eeb70bc2 (vcvt\.f32\.f64|fcvtsd) s0, d2
0+144 <[^>]*> eeb70bcf (vcvt\.f32\.f64|fcvtsd) s0, d15
0+148 <[^>]*> ee301b10 vmov\.32 r1, d0\[1\]
0+14c <[^>]*> ee30eb10 vmov\.32 lr, d0\[1\]
0+150 <[^>]*> ee310b10 vmov\.32 r0, d1\[1\]
0+154 <[^>]*> ee320b10 vmov\.32 r0, d2\[1\]
0+158 <[^>]*> ee3f0b10 vmov\.32 r0, d15\[1\]
0+15c <[^>]*> ee101b10 vmov\.32 r1, d0\[0\]
0+160 <[^>]*> ee10eb10 vmov\.32 lr, d0\[0\]
0+164 <[^>]*> ee110b10 vmov\.32 r0, d1\[0\]
0+168 <[^>]*> ee120b10 vmov\.32 r0, d2\[0\]
0+16c <[^>]*> ee1f0b10 vmov\.32 r0, d15\[0\]
0+170 <[^>]*> ee201b10 vmov\.32 d0\[1\], r1
0+174 <[^>]*> ee20eb10 vmov\.32 d0\[1\], lr
0+178 <[^>]*> ee210b10 vmov\.32 d1\[1\], r0
0+17c <[^>]*> ee220b10 vmov\.32 d2\[1\], r0
0+180 <[^>]*> ee2f0b10 vmov\.32 d15\[1\], r0
0+184 <[^>]*> ee001b10 vmov\.32 d0\[0\], r1
0+188 <[^>]*> ee00eb10 vmov\.32 d0\[0\], lr
0+18c <[^>]*> ee010b10 vmov\.32 d1\[0\], r0
0+190 <[^>]*> ee020b10 vmov\.32 d2\[0\], r0
0+194 <[^>]*> ee0f0b10 vmov\.32 d15\[0\], r0
0+198 <[^>]*> ed910b00 vldr d0, \[r1\]
0+19c <[^>]*> ed9e0b00 vldr d0, \[lr\]
0+1a0 <[^>]*> ed900b00 vldr d0, \[r0\]
0+1a4 <[^>]*> ed900bff vldr d0, \[r0, #1020\].*
0+1a8 <[^>]*> ed100bff vldr d0, \[r0, #-1020\].*
0+1ac <[^>]*> ed901b00 vldr d1, \[r0\]
0+1b0 <[^>]*> ed902b00 vldr d2, \[r0\]
0+1b4 <[^>]*> ed90fb00 vldr d15, \[r0\]
0+1b8 <[^>]*> ed8ccbc9 vstr d12, \[ip, #804\].*
0+1bc <[^>]*> ec901b02 vldmia r0, {d1}
0+1c0 <[^>]*> ec902b02 vldmia r0, {d2}
0+1c4 <[^>]*> ec90fb02 vldmia r0, {d15}
0+1c8 <[^>]*> ec900b04 vldmia r0, {d0-d1}
0+1cc <[^>]*> ec900b06 vldmia r0, {d0-d2}
0+1d0 <[^>]*> ec900b20 vldmia r0, {d0-d15}
0+1d4 <[^>]*> ec901b1e vldmia r0, {d1-d15}
0+1d8 <[^>]*> ec902b1c vldmia r0, {d2-d15}
0+1dc <[^>]*> ec90eb04 vldmia r0, {d14-d15}
0+1e0 <[^>]*> ec910b02 vldmia r1, {d0}
0+1e4 <[^>]*> ec9e0b02 vldmia lr, {d0}
0+1e8 <[^>]*> eeb50b40 (vcmp\.f64 d0, #0.0|fcmpzd d0)
0+1ec <[^>]*> eeb51b40 (vcmp\.f64 d1, #0.0|fcmpzd d1)
0+1f0 <[^>]*> eeb52b40 (vcmp\.f64 d2, #0.0|fcmpzd d2)
0+1f4 <[^>]*> eeb53b40 (vcmp\.f64 d3, #0.0|fcmpzd d3)
0+1f8 <[^>]*> eeb54b40 (vcmp\.f64 d4, #0.0|fcmpzd d4)
0+1fc <[^>]*> eeb55b40 (vcmp\.f64 d5, #0.0|fcmpzd d5)
0+200 <[^>]*> eeb56b40 (vcmp\.f64 d6, #0.0|fcmpzd d6)
0+204 <[^>]*> eeb57b40 (vcmp\.f64 d7, #0.0|fcmpzd d7)
0+208 <[^>]*> eeb58b40 (vcmp\.f64 d8, #0.0|fcmpzd d8)
0+20c <[^>]*> eeb59b40 (vcmp\.f64 d9, #0.0|fcmpzd d9)
0+210 <[^>]*> eeb5ab40 (vcmp\.f64 d10, #0.0|fcmpzd d10)
0+214 <[^>]*> eeb5bb40 (vcmp\.f64 d11, #0.0|fcmpzd d11)
0+218 <[^>]*> eeb5cb40 (vcmp\.f64 d12, #0.0|fcmpzd d12)
0+21c <[^>]*> eeb5db40 (vcmp\.f64 d13, #0.0|fcmpzd d13)
0+220 <[^>]*> eeb5eb40 (vcmp\.f64 d14, #0.0|fcmpzd d14)
0+224 <[^>]*> eeb5fb40 (vcmp\.f64 d15, #0.0|fcmpzd d15)
0+228 <[^>]*> 0eb41bcf (vcmpeeq\.f64|fcmpedeq) d1, d15
0+22c <[^>]*> 0eb52bc0 (vcmpeeq\.f64 d2, #0.0|fcmpezdeq d2)
0+230 <[^>]*> 0eb43b4e (vcmpeq\.f64|fcmpdeq) d3, d14
0+234 <[^>]*> 0eb54b40 (vcmpeq\.f64 d4, #0.0|fcmpzdeq d4)
0+238 <[^>]*> 0eb05bcd (vabseq\.f64|fabsdeq) d5, d13
0+23c <[^>]*> 0eb06b4c (vmoveq\.f64|fcpydeq) d6, d12
0+240 <[^>]*> 0eb17b4b (vnegeq\.f64|fnegdeq) d7, d11
0+244 <[^>]*> 0eb18bca (vsqrteq\.f64|fsqrtdeq) d8, d10
0+248 <[^>]*> 0e319b0f (vaddeq\.f64|fadddeq) d9, d1, d15
0+24c <[^>]*> 0e832b0e (vdiveq\.f64|fdivdeq) d2, d3, d14
0+250 <[^>]*> 0e0d4b0c (vmlaeq\.f64|fmacdeq) d4, d13, d12
0+254 <[^>]*> 0e165b0b (vnmlseq\.f64|fmscdeq) d5, d6, d11
0+258 <[^>]*> 0e2a7b09 (vmuleq\.f64|fmuldeq) d7, d10, d9
0+25c <[^>]*> 0e098b4a (vmlseq\.f64|fnmacdeq) d8, d9, d10
0+260 <[^>]*> 0e167b4b (vnmlaeq\.f64|fnmscdeq) d7, d6, d11
0+264 <[^>]*> 0e245b4c (vnmuleq\.f64|fnmuldeq) d5, d4, d12
0+268 <[^>]*> 0e3d3b4e (vsubeq\.f64|fsubdeq) d3, d13, d14
0+26c <[^>]*> 0d952b00 vldreq d2, \[r5\]
0+270 <[^>]*> 0d8c1b00 vstreq d1, \[ip\]
0+274 <[^>]*> 0c911b02 vldmiaeq r1, {d1}
0+278 <[^>]*> 0c922b02 vldmiaeq r2, {d2}
0+27c <[^>]*> 0cb33b02 vldmiaeq r3!, {d3}
0+280 <[^>]*> 0cb44b02 vldmiaeq r4!, {d4}
0+284 <[^>]*> 0d355b02 vldmdbeq r5!, {d5}
0+288 <[^>]*> 0d366b02 vldmdbeq r6!, {d6}
0+28c <[^>]*> 0c87fb02 vstmiaeq r7, {d15}
0+290 <[^>]*> 0c88eb02 vstmiaeq r8, {d14}
0+294 <[^>]*> 0ca9db02 vstmiaeq r9!, {d13}
0+298 <[^>]*> 0caacb02 vstmiaeq sl!, {d12}
0+29c <[^>]*> 0d2bbb02 vstmdbeq fp!, {d11}
0+2a0 <[^>]*> 0d2cab02 vstmdbeq ip!, {d10}
0+2a4 <[^>]*> 0eb8fbe0 (vcvteq\.f64\.s32|fsitodeq) d15, s1
0+2a8 <[^>]*> 0eb81b6f (vcvteq\.f64\.u32|fuitodeq) d1, s31
0+2ac <[^>]*> 0efd0b4f (vcvtreq\.s32\.f64|ftosideq) s1, d15
0+2b0 <[^>]*> 0efdfbc2 (vcvteq\.s32\.f64|ftosizdeq) s31, d2
0+2b4 <[^>]*> 0efc7b42 (vcvtreq\.u32\.f64|ftouideq) s15, d2
0+2b8 <[^>]*> 0efc5bc3 (vcvteq\.u32\.f64|ftouizdeq) s11, d3
0+2bc <[^>]*> 0eb71ac5 (vcvteq\.f64\.f32|fcvtdseq) d1, s10
0+2c0 <[^>]*> 0ef75bc1 (vcvteq\.f32\.f64|fcvtsdeq) s11, d1
0+2c4 <[^>]*> 0e318b10 vmoveq\.32 r8, d1\[1\]
0+2c8 <[^>]*> 0e1f7b10 vmoveq\.32 r7, d15\[0\]
0+2cc <[^>]*> 0e21fb10 vmoveq\.32 d1\[1\], pc
0+2d0 <[^>]*> 0e0f1b10 vmoveq\.32 d15\[0\], r1
0+2d4 <[^>]*> e1a00000 ? nop[ ]+; \(mov r0, r0\)
0+2d8 <[^>]*> e1a00000 ? nop[ ]+; \(mov r0, r0\)
0+2dc <[^>]*> e1a00000 ? nop[ ]+; \(mov r0, r0\)
|