Copyright year update in most files of the GDB Project.
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.reverse / i386-sse-reverse.exp
CommitLineData
c5a57081 1# Copyright 2009-2012 Free Software Foundation, Inc.
eb8e76db
HZ
2
3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by
5# the Free Software Foundation; either version 3 of the License, or
6# (at your option) any later version.
7#
8# This program is distributed in the hope that it will be useful,
9# but WITHOUT ANY WARRANTY; without even the implied warranty of
10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11# GNU General Public License for more details.
12#
13# You should have received a copy of the GNU General Public License
14# along with this program. If not, see <http://www.gnu.org/licenses/>.
15
16# This file is part of the gdb testsuite.
17
18#
19# This test tests some i386 general instructions for reverse execution.
20#
21
d3895d7d 22if ![supports_reverse] {
eb8e76db
HZ
23 return
24}
25
26if $tracelevel {
27 strace $tracelevel
28}
29
eb8e76db
HZ
30
31if ![istarget "*86*-*linux*"] then {
32 verbose "Skipping i386 reverse tests."
33 return
34}
35
36set testfile "i386-sse-reverse"
37set srcfile ${testfile}.c
38set binfile ${objdir}/${subdir}/${testfile}
39
40# some targets have leading underscores on assembly symbols.
ee5683ab 41set additional_flags [gdb_target_symbol_prefix_flags]
eb8e76db
HZ
42
43if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug $additional_flags]] != "" } {
44 untested i386-sse-reverse
45 return -1
46}
47
48set end_of_main [gdb_get_line_number " end of main "]
49set end_sse_test [gdb_get_line_number " end sse_test "]
50set end_sse4_test [gdb_get_line_number " end sse4_test "]
51
52# Get things started.
53
54gdb_exit
55gdb_start
56gdb_reinitialize_dir $srcdir/$subdir
57gdb_load ${binfile}
58runto main
59
d3895d7d 60if [supports_process_record] {
eb8e76db 61 # Activate process record/replay
bcd2dc50 62 gdb_test_no_output "record" "Turn on process record"
eb8e76db
HZ
63}
64
65global hex
66global decimal
67
68#sse_test
69
70gdb_test "break $end_sse_test" \
71 "Breakpoint $decimal at .* line $end_sse_test\." \
72 "set breakpoint at end of sse_test"
73
74gdb_test "continue" \
75 " end sse_test .*" \
76 "continue to end of sse_test"
77
78gdb_test "reverse-step" "xorps.*" "reverse-step to xorps"
79
80gdb_test "info register xmm0" \
81 "xmm0 .*uint128 = 0x7f007f007fff7fff7f007f007fff7fff.*" \
82 "verify xmm0 at end of sse_test"
83
84gdb_test "info register xmm1" \
85 "xmm1 .*uint128 = 0x00ff00ff0000000000ff00ff00000000.*" \
86 "verify xmm1 at end of sse_test"
87
88gdb_test "info register xmm2" \
89 "xmm2 .*uint128 = 0x7f007f007f007f007f007f007f007f00.*" \
90 "verify xmm2 at end of sse_test"
91
92gdb_test "reverse-step" "xorpd.*" "reverse-step to xorpd"
93
94gdb_test "info register xmm0" \
95 "xmm0 .*uint128 = 0x7f007f007fff7fff7f007f007fff7fff.*" \
96 "verify xmm0 after reverse xorps"
97
98gdb_test "info register xmm1" \
99 "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \
100 "verify xmm1 after reverse xorps"
101
102gdb_test "info register xmm2" \
103 "xmm2 .*uint128 = 0x7f007f007f007f007f007f007f007f00.*" \
104 "verify xmm2 after reverse xorps"
105
106gdb_test "reverse-step" "unpckhps.*" "reverse-step to unpckhps"
107
108gdb_test "info register xmm0" \
109 "xmm0 .*uint128 = 0x7fff7fff7fff7fff0108000001400000.*" \
110 "verify xmm0 after reverse xorpd"
111
112gdb_test "info register xmm1" \
113 "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \
114 "verify xmm1 after reverse xorpd"
115
116gdb_test "info register xmm2" \
117 "xmm2 .*uint128 = 0x7f007f007f007f007f007f007f007f00.*" \
118 "verify xmm2 after reverse xorpd"
119
120gdb_test "reverse-step" "unpckhpd.*" "reverse-step to unpckhpd"
121
122gdb_test "info register xmm0" \
123 "xmm0 .*uint128 = 0x01080000014000000108000001400000.*" \
124 "verify xmm0 after reverse unpckhps"
125
126gdb_test "info register xmm1" \
127 "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \
128 "verify xmm1 after reverse unpckhps"
129
130gdb_test "info register xmm2" \
131 "xmm2 .*uint128 = 0x7f007f007f007f007f007f007f007f00.*" \
132 "verify xmm2 after reverse unpckhps"
133
134gdb_test "reverse-step" "ucomiss.*" "reverse-step to ucomiss"
135
136gdb_test "info register xmm0" \
137 "xmm0 .*uint128 = 0x01080000014000000108000001400000.*" \
138 "verify xmm0 after reverse unpckhpd"
139
140gdb_test "info register xmm1" \
141 "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \
142 "verify xmm1 after reverse unpckhpd"
143
144gdb_test "info register xmm2" \
145 "xmm2 .*uint128 = 0x7f007f007f007f007f007f007f007f00.*" \
146 "verify xmm2 after reverse unpckhpd"
147
148gdb_test "reverse-step" "ucomisd.*" "reverse-step to ucomisd"
149
150gdb_test "info register xmm0" \
151 "xmm0 .*uint128 = 0x01080000014000000108000001400000.*" \
152 "verify xmm0 after reverse ucomiss"
153
154gdb_test "info register xmm1" \
155 "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \
156 "verify xmm1 after reverse ucomiss"
157
158gdb_test "info register xmm2" \
159 "xmm2 .*uint128 = 0x7f007f007f007f007f007f007f007f00.*" \
160 "verify xmm2 after reverse ucomiss"
161
162gdb_test "reverse-step" "packssdw.*" "reverse-step to packssdw"
163
164gdb_test "info register xmm0" \
165 "xmm0 .*uint128 = 0x01080000014000000108000001400000.*" \
166 "verify xmm0 after reverse ucomisd"
167
168gdb_test "info register xmm1" \
169 "xmm1 .*uint128 = 0x01080000014000000108000001400000.*" \
170 "verify xmm1 after reverse ucomisd"
171
172gdb_test "info register xmm2" \
173 "xmm2 .*uint128 = 0x7f007f007f007f007f007f007f007f00.*" \
174 "verify xmm2 after reverse ucomisd"
175
176gdb_test "reverse-step" "packsswb.*" "reverse-step to packsswb"
177
178gdb_test "info register xmm0" \
179 "xmm0 .*uint128 = 0x01080000014000000108000001400000.*" \
180 "verify xmm0 after reverse packssdw"
181
182gdb_test "info register xmm1" \
183 "xmm1 .*uint128 = 0x01080000014000000108000001400000.*" \
184 "verify xmm1 after reverse packssdw"
185
186gdb_test "info register xmm2" \
187 "xmm2 .*uint128 = 0x01080000014000000108000001400000.*" \
188 "verify xmm2 after reverse packssdw"
189
190gdb_test "reverse-step" "pabsd.*" "reverse-step to pabsd"
191
192gdb_test "info register xmm0" \
193 "xmm0 .*uint128 = 0xfff00000ffc00000fff80000ffc00000.*" \
194 "verify xmm0 after reverse packsswb"
195
196gdb_test "info register xmm1" \
197 "xmm1 .*uint128 = 0x01080000014000000108000001400000.*" \
198 "verify xmm1 after reverse packsswb"
199
200gdb_test "info register xmm2" \
201 "xmm2 .*uint128 = 0x01080000014000000108000001400000.*" \
202 "verify xmm2 after reverse packsswb"
203
204gdb_test "reverse-step" "pabsw.*" "reverse-step to pabsw"
205
206gdb_test "info register xmm0" \
207 "xmm0 .*uint128 = 0xfff00000ffc00000fff80000ffc00000.*" \
208 "verify xmm0 after reverse pabsd"
209
210gdb_test "info register xmm1" \
211 "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \
212 "verify xmm1 after reverse pabsd"
213
214gdb_test "info register xmm2" \
215 "xmm2 .*uint128 = 0x01080000014000000108000001400000.*" \
216 "verify xmm2 after reverse pabsd"
217
218gdb_test "reverse-step" "pabsb.*" "reverse-step to pabsb"
219
220gdb_test "info register xmm0" \
221 "xmm0 .*uint128 = 0xfff00000ffc00000fff80000ffc00000.*" \
222 "verify xmm0 after reverse pabsw"
223
224gdb_test "info register xmm1" \
225 "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \
226 "verify xmm1 after reverse pabsw"
227
228gdb_test "info register xmm2" \
229 "xmm2 .*uint128 = 0xfff00000ffc00000fff00000ffc00000.*" \
230 "verify xmm2 after reverse pabsw"
231
232gdb_test "reverse-step" "orps.*" "reverse-step to orps"
233
234gdb_test "info register xmm0" \
235 "xmm0 .*uint128 = 0xfff00000ffc00000fff80000ffc00000.*" \
236 "verify xmm0 after reverse pabsb"
237
238gdb_test "info register xmm1" \
239 "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \
240 "verify xmm1 after reverse pabsb"
241
242gdb_test "info register xmm2" \
243 "xmm2 .*uint128 = 0xfff00000ffc00000fff00000ffc00000.*" \
244 "verify xmm2 after reverse pabsb"
245
246gdb_test "reverse-step" "orpd.*" "reverse-step to orpd"
247
248gdb_test "info register xmm0" \
249 "xmm0 .*uint128 = 0x0000000000000000fff80000ffc00000.*" \
250 "verify xmm0 after reverse orps"
251
252gdb_test "info register xmm1" \
253 "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \
254 "verify xmm1 after reverse orps"
255
256gdb_test "info register xmm2" \
257 "xmm2 .*uint128 = 0xfff00000ffc00000fff00000ffc00000.*" \
258 "verify xmm2 after reverse orps"
259
260gdb_test "reverse-step" "mulss.*" "reverse-step to mulss"
261
262gdb_test "info register xmm0" \
263 "xmm0 .*uint128 = 0x0000000000000000fff80000ffc00000.*" \
264 "verify xmm0 after reverse orpd"
265
266gdb_test "info register xmm1" \
267 "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \
268 "verify xmm1 after reverse orpd"
269
270gdb_test "info register xmm2" \
271 "xmm2 .*uint128 = 0xfff00000ffc00000fff00000ffc00000.*" \
272 "verify xmm2 after reverse orpd"
273
274gdb_test "reverse-step" "mulsd.*" "reverse-step to mulsd"
275
276gdb_test "info register xmm0" \
277 "xmm0 .*uint128 = 0x0000000000000000fff80000ffc00000.*" \
278 "verify xmm0 after reverse mulss"
279
280gdb_test "info register xmm1" \
281 "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \
282 "verify xmm1 after reverse mulss"
283
284gdb_test "info register xmm2" \
285 "xmm2 .*uint128 = 0xfff00000ffc00000fff00000ffc00000.*" \
286 "verify xmm2 after reverse mulss"
287
288gdb_test "reverse-step" "mulps.*" "reverse-step to mulps"
289
290gdb_test "info register xmm0" \
291 "xmm0 .*uint128 = 0x0000000000000000fff80000ffc00000.*" \
292 "verify xmm0 after reverse mulsd"
293
294gdb_test "info register xmm1" \
295 "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \
296 "verify xmm1 after reverse mulsd"
297
298gdb_test "info register xmm2" \
299 "xmm2 .*uint128 = 0xfff0000000000000fff00000ffc00000.*" \
300 "verify xmm2 after reverse mulsd"
301
302gdb_test "reverse-step" "mulpd.*" "reverse-step to mulpd"
303
304gdb_test "info register xmm0" \
305 "xmm0 .*uint128 = 0x0000000000000000fff80000ffc00000.*" \
306 "verify xmm0 after reverse mulps"
307
308gdb_test "info register xmm1" \
309 "xmm1 .*uint128 = 0xfff00000ffc00000fff00000ffc00000.*" \
310 "verify xmm1 after reverse mulps"
311
312gdb_test "info register xmm2" \
313 "xmm2 .*uint128 = 0xfff0000000000000fff00000ffc00000.*" \
314 "verify xmm2 after reverse mulps"
315
316gdb_test "reverse-step" "divss.*" "reverse-step to divss"
317
318gdb_test "info register xmm0" \
319 "xmm0 .*uint128 = 0x0000000000000000fff80000ffc00000.*" \
320 "verify xmm0 after reverse mulpd"
321
322gdb_test "info register xmm1" \
323 "xmm1 .*uint128 = 0xfff00000ffc00000fff00000ffc00000.*" \
324 "verify xmm1 after reverse mulpd"
325
326gdb_test "info register xmm2" \
327 "xmm2 .*uint128 = 0xfff0000000000000fff0000000000000.*" \
328 "verify xmm2 after reverse mulpd"
329
330gdb_test "reverse-step" "divsd.*" "reverse-step to divsd"
331
332gdb_test "info register xmm0" \
333 "xmm0 .*uint128 = 0x00000000000000008000000080000000.*" \
334 "verify xmm0 after reverse divss"
335
336gdb_test "info register xmm1" \
337 "xmm1 .*uint128 = 0xfff00000ffc00000fff00000ffc00000.*" \
338 "verify xmm1 after reverse divss"
339
340gdb_test "info register xmm2" \
341 "xmm2 .*uint128 = 0xfff0000000000000fff0000000000000.*" \
342 "verify xmm2 after reverse divss"
343
344gdb_test "reverse-step" "divps.*" "reverse-step to divps"
345
346gdb_test "info register xmm0" \
347 "xmm0 .*uint128 = 0x00000000000000008000000080000000.*" \
348 "verify xmm0 after reverse divsd"
349
350gdb_test "info register xmm1" \
351 "xmm1 .*uint128 = 0x00000000000000000000000080000000.*" \
352 "verify xmm1 after reverse divsd"
353
354gdb_test "info register xmm2" \
355 "xmm2 .*uint128 = 0xfff0000000000000fff0000000000000.*" \
356 "verify xmm2 after reverse divsd"
357
358gdb_test "reverse-step" "divpd.*" "reverse-step to divpd"
359
360gdb_test "info register xmm0" \
361 "xmm0 .*uint128 = 0x00000000000000008000000080000000.*" \
362 "verify xmm0 after reverse divps"
363
364gdb_test "info register xmm1" \
365 "xmm1 .*uint128 = 0x00000000000000000000000080000000.*" \
366 "verify xmm1 after reverse divps"
367
368gdb_test "info register xmm2" \
369 "xmm2 .*uint128 = 0xbff0000000000000bff0000000000000.*" \
370 "verify xmm2 after reverse divps"
371
372gdb_test "reverse-step" "cvtpd2ps.*" "reverse-step to cvtpd2ps"
373
374gdb_test "info register xmm0" \
375 "xmm0 .*uint128 = 0x00000000000000008000000080000000.*" \
376 "verify xmm0 after reverse divpd"
377
378gdb_test "info register xmm1" \
379 "xmm1 .*uint128 = 0xce80200000000000ce80200000000000.*" \
380 "verify xmm1 after reverse divpd"
381
382gdb_test "info register xmm2" \
383 "xmm2 .*uint128 = 0xbff0000000000000bff0000000000000.*" \
384 "verify xmm2 after reverse divpd"
385
386gdb_test "reverse-step" "cvtpd2dq.*" "reverse-step to cvtpd2dq"
387
388gdb_test "info register xmm0" \
389 "xmm0 .*uint128 = 0x0f0e0d0c0b0a090807060504ffffffff.*" \
390 "verify xmm0 after reverse cvtpd2ps"
391
392gdb_test "info register xmm1" \
393 "xmm1 .*uint128 = 0xce80200000000000ce80200000000000.*" \
394 "verify xmm1 after reverse cvtpd2ps"
395
396gdb_test "info register xmm2" \
397 "xmm2 .*uint128 = 0xbff0000000000000bff0000000000000.*" \
398 "verify xmm2 after reverse cvtpd2ps"
399
400gdb_test "reverse-step" "cvtdq2ps.*" "reverse-step to cvtdq2ps"
401
402gdb_test "info register xmm0" \
403 "xmm0 .*uint128 = 0x0f0e0d0c0b0a090807060504ffffffff.*" \
404 "verify xmm0 after reverse cvtpd2dq"
405
406gdb_test "info register xmm1" \
407 "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \
408 "verify xmm1 after reverse cvtpd2dq"
409
410gdb_test "info register xmm2" \
411 "xmm2 .*uint128 = 0xbff0000000000000bff0000000000000.*" \
412 "verify xmm2 after reverse cvtpd2dq"
413
414gdb_test "reverse-step" "cvtdq2pd.*" "reverse-step to cvtdq2pd"
415
416gdb_test "info register xmm0" \
417 "xmm0 .*uint128 = 0x0f0e0d0c0b0a090807060504ffffffff.*" \
418 "verify xmm0 after reverse cvtdq2ps"
419
420gdb_test "info register xmm1" \
421 "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \
422 "verify xmm1 after reverse cvtdq2ps"
423
424gdb_test "info register xmm2" \
425 "xmm2 .*uint128 = 0xffffffffffffffffffffffff00000000.*" \
426 "verify xmm2 after reverse cvtdq2ps"
427
428gdb_test "reverse-step" "comiss.*" "reverse-step to comiss"
429
430gdb_test "info register xmm0" \
431 "xmm0 .*uint128 = 0x0f0e0d0c0b0a090807060504ffffffff.*" \
432 "verify xmm0 after reverse cvtdq2pd"
433
434gdb_test "info register xmm1" \
435 "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \
436 "verify xmm1 after reverse cvtdq2pd"
437
438gdb_test "info register xmm2" \
439 "xmm2 .*uint128 = 0xffffffffffffffffffffffff00000000.*" \
440 "verify xmm2 after reverse cvtdq2pd"
441
442gdb_test "reverse-step" "comisd.*" "reverse-step to comisd"
443
444gdb_test "info register xmm0" \
445 "xmm0 .*uint128 = 0x0f0e0d0c0b0a090807060504ffffffff.*" \
446 "verify xmm0 after reverse comiss"
447
448gdb_test "info register xmm1" \
449 "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \
450 "verify xmm1 after reverse comiss"
451
452gdb_test "info register xmm2" \
453 "xmm2 .*uint128 = 0xffffffffffffffffffffffff00000000.*" \
454 "verify xmm2 after reverse comiss"
455
456gdb_test "reverse-step" "cmpss.*" "reverse-step to cmpss"
457
458gdb_test "info register xmm0" \
459 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
460 "verify xmm0 after reverse comisd"
461
462gdb_test "info register xmm1" \
463 "xmm1 .*uint128 = 0x0000000000000000ffffffffffffffff.*" \
464 "verify xmm1 after reverse comisd"
465
466gdb_test "info register xmm2" \
467 "xmm2 .*uint128 = 0xffffffffffffffffffffffff00000000.*" \
468 "verify xmm2 after reverse comisd"
469
470gdb_test "reverse-step" "cmpsd.*" "reverse-step to cmpsd"
471
472gdb_test "info register xmm0" \
473 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
474 "verify xmm0 after reverse cmpss"
475
476gdb_test "info register xmm1" \
477 "xmm1 .*uint128 = 0x00000000000000000000000000000000.*" \
478 "verify xmm1 after reverse cmpss"
479
480gdb_test "info register xmm2" \
481 "xmm2 .*uint128 = 0xffffffffffffffffffffffff00000000.*" \
482 "verify xmm2 after reverse cmpss"
483
484gdb_test "reverse-step" "cmpps.*" "reverse-step to cmpps"
485
486gdb_test "info register xmm0" \
487 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
488 "verify xmm0 after reverse cmpsd"
489
490gdb_test "info register xmm1" \
491 "xmm1 .*uint128 = 0x00000000000000000000000000000000.*" \
492 "verify xmm1 after reverse cmpsd"
493
494gdb_test "info register xmm2" \
495 "xmm2 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \
496 "verify xmm2 after reverse cmpsd"
497
498gdb_test "reverse-step" "cmppd.*" "reverse-step to cmppd"
499
500gdb_test "info register xmm0" \
501 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
502 "verify xmm0 after reverse cmpps"
503
504gdb_test "info register xmm1" \
505 "xmm1 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \
506 "verify xmm1 after reverse cmpps"
507
508gdb_test "info register xmm2" \
509 "xmm2 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \
510 "verify xmm2 after reverse cmpps"
511
512gdb_test "reverse-step" "andps.*" "reverse-step to andps"
513
514gdb_test "info register xmm0" \
515 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
516 "verify xmm0 after reverse cmppd"
517
518gdb_test "info register xmm1" \
519 "xmm1 .*uint128 = 0x1f1e1d1c1b1a19182726252400000000.*" \
520 "verify xmm1 after reverse cmppd"
521
522gdb_test "info register xmm2" \
523 "xmm2 .*uint128 = 0x0f0e0d0c0b0a09082726252400000000.*" \
524 "verify xmm2 after reverse cmppd"
525
526gdb_test "reverse-step" "andpd.*" "reverse-step to andpd"
527
528gdb_test "info register xmm0" \
529 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
530 "verify xmm0 after reverse andps"
531
532gdb_test "info register xmm1" \
533 "xmm1 .*uint128 = 0x1f1e1d1c1b1a19182726252400000000.*" \
534 "verify xmm1 after reverse andps"
535
536gdb_test "info register xmm2" \
537 "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \
538 "verify xmm2 after reverse andps"
539
540gdb_test "reverse-step" "addsubps.*" "reverse-step to addsubps"
541
542gdb_test "info register xmm0" \
543 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
544 "verify xmm0 after reverse andpd"
545
546gdb_test "info register xmm1" \
547 "xmm1 .*uint128 = 0x1f1e1d1c1b1a19182726252423222120.*" \
548 "verify xmm1 after reverse andpd"
549
550gdb_test "info register xmm2" \
551 "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \
552 "verify xmm2 after reverse andpd"
553
554gdb_test "reverse-step" "addsubpd.*" "reverse-step to addsubpd"
555
556gdb_test "info register xmm0" \
557 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050423222120.*" \
558 "verify xmm0 after reverse addsubps"
559
560gdb_test "info register xmm1" \
561 "xmm1 .*uint128 = 0x1f1e1d1c1b1a19182726252423222120.*" \
562 "verify xmm1 after reverse addsubps"
563
564gdb_test "info register xmm2" \
565 "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \
566 "verify xmm2 after reverse addsubps"
567
568gdb_test "reverse-step" "addss.*" "reverse-step to addss"
569
570gdb_test "info register xmm0" \
571 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \
572 "verify xmm0 after reverse addsubpd"
573
574gdb_test "info register xmm1" \
575 "xmm1 .*uint128 = 0x1f1e1d1c1b1a19182726252423222120.*" \
576 "verify xmm1 after reverse addsubpd"
577
578gdb_test "info register xmm2" \
579 "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \
580 "verify xmm2 after reverse addsubpd"
581
582gdb_test "reverse-step" "addsd.*" "reverse-step to addsd"
583
584gdb_test "info register xmm0" \
585 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \
586 "verify xmm0 after reverse addss"
587
588gdb_test "info register xmm1" \
589 "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \
590 "verify xmm1 after reverse addss"
591
592gdb_test "info register xmm2" \
593 "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \
594 "verify xmm2 after reverse addss"
595
596gdb_test "reverse-step" "addps.*" "reverse-step to addps"
597
598gdb_test "info register xmm0" \
599 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \
600 "verify xmm0 after reverse addsd"
601
602gdb_test "info register xmm1" \
603 "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \
604 "verify xmm1 after reverse addsd"
605
606gdb_test "info register xmm2" \
607 "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \
608 "verify xmm2 after reverse addsd"
609
610gdb_test "reverse-step" "addpd.*" "reverse-step to addpd"
611
612gdb_test "info register xmm0" \
613 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \
614 "verify xmm0 after reverse addps"
615
616gdb_test "info register xmm1" \
617 "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \
618 "verify xmm1 after reverse addps"
619
620gdb_test "info register xmm2" \
621 "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \
622 "verify xmm2 after reverse addps"
623
624
625#sse4_test
626
50b4ddf8
JK
627gdb_test "continue" \
628 " end sse_test .*" \
629 "continue to end of sse_test #2"
eb8e76db
HZ
630
631gdb_test "break $end_sse4_test" \
632 "Breakpoint $decimal at .* line $end_sse4_test\." \
633 "set breakpoint at end of sse4_test"
634
fb0aec57
JK
635set test "continue to end of sse4_test"
636gdb_test_multiple "continue" $test {
637 -re " end sse4_test .*\r\n$gdb_prompt $" {
638 pass $test
eb8e76db 639 }
fb0aec57 640 -re " Illegal instruction.*\r\n$gdb_prompt $" {
eb8e76db
HZ
641 untested i386-sse4-reverse
642 return -1
643 }
644}
645
646gdb_test "reverse-step" "blendvps.*" "reverse-step to blendvps"
647
648gdb_test "info register xmm0" \
649 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09082726252413121110.*" \
650 "verify xmm0 at end of sse4_test"
651
652gdb_test "info register xmm1" \
653 "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \
654 "verify xmm1 at end of sse4_test"
655
656gdb_test "info register xmm2" \
657 "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \
658 "verify xmm2 at end of sse4_test"
659
660gdb_test "reverse-step" "blendvpd.*" "reverse-step to blendvpd"
661
662gdb_test "info register xmm0" \
663 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09082726252413121110.*" \
664 "verify xmm0 after reverse blendvps"
665
666gdb_test "info register xmm1" \
667 "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \
668 "verify xmm1 after reverse blendvps"
669
670gdb_test "info register xmm2" \
671 "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \
672 "verify xmm2 after reverse blendvps"
673
674gdb_test "reverse-step" "blendps.*" "reverse-step to blendps"
675
676gdb_test "info register xmm0" \
677 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09081716151413121110.*" \
678 "verify xmm0 after reverse blendvpd"
679
680gdb_test "info register xmm1" \
681 "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \
682 "verify xmm1 after reverse blendvpd"
683
684gdb_test "info register xmm2" \
685 "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \
686 "verify xmm2 after reverse blendvpd"
687
688gdb_test "reverse-step" "blendpd.*" "reverse-step to blendpd"
689
690gdb_test "info register xmm0" \
691 "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \
692 "verify xmm0 after reverse blendps"
693
694gdb_test "info register xmm1" \
695 "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \
696 "verify xmm1 after reverse blendps"
697
698gdb_test "info register xmm2" \
699 "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \
700 "verify xmm2 after reverse blendps"
This page took 0.249532 seconds and 4 git commands to generate.