| OLD | NEW | 
|---|
| 1 # Copyright 2009-2012 Free Software Foundation, Inc. | 1 # Copyright 2009-2012 Free Software Foundation, Inc. | 
| 2 | 2 | 
| 3 # This program is free software; you can redistribute it and/or modify | 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 | 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 | 5 # the Free Software Foundation; either version 3 of the License, or | 
| 6 # (at your option) any later version. | 6 # (at your option) any later version. | 
| 7 # | 7 # | 
| 8 # This program is distributed in the hope that it will be useful, | 8 # This program is distributed in the hope that it will be useful, | 
| 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
| 11 # GNU General Public License for more details. | 11 # GNU General Public License for more details. | 
| 12 # | 12 # | 
| 13 # You should have received a copy of the GNU General Public License | 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/>. | 14 # along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
| 15 | 15 | 
| 16 # This file is part of the gdb testsuite. | 16 # This file is part of the gdb testsuite. | 
| 17 | 17 | 
| 18 # | 18 # | 
| 19 # This test tests some i386 general instructions for reverse execution. | 19 # This test tests some i386 general instructions for reverse execution. | 
| 20 # | 20 # | 
| 21 | 21 | 
| 22 if ![supports_reverse] { | 22 if ![supports_reverse] { | 
| 23     return | 23     return | 
| 24 } | 24 } | 
| 25 | 25 | 
| 26 if $tracelevel { |  | 
| 27     strace $tracelevel |  | 
| 28 } |  | 
| 29 |  | 
| 30 | 26 | 
| 31 if ![istarget "*86*-*linux*"] then { | 27 if ![istarget "*86*-*linux*"] then { | 
| 32     verbose "Skipping i386 reverse tests." | 28     verbose "Skipping i386 reverse tests." | 
| 33     return | 29     return | 
| 34 } | 30 } | 
| 35 | 31 | 
| 36 set testfile "i386-sse-reverse" | 32 standard_testfile | 
| 37 set srcfile ${testfile}.c |  | 
| 38 set binfile ${objdir}/${subdir}/${testfile} |  | 
| 39 | 33 | 
| 40 # some targets have leading underscores on assembly symbols. | 34 # some targets have leading underscores on assembly symbols. | 
| 41 set additional_flags [gdb_target_symbol_prefix_flags] | 35 set additional_flags [gdb_target_symbol_prefix_flags] | 
| 42 | 36 | 
| 43 if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list
      debug $additional_flags]] != "" } { | 37 if {[prepare_for_testing $testfile.exp $testfile $srcfile \ | 
| 44     untested i386-sse-reverse | 38 »        [list debug $additional_flags]]} { | 
| 45     return -1 | 39     return -1 | 
| 46 } | 40 } | 
| 47 | 41 | 
| 48 set end_of_main          [gdb_get_line_number " end of main "] | 42 set end_of_main          [gdb_get_line_number " end of main "] | 
| 49 set end_sse_test         [gdb_get_line_number " end sse_test "] | 43 set end_sse_test         [gdb_get_line_number " end sse_test "] | 
|  | 44 set end_ssse3_test       [gdb_get_line_number " end ssse3_test "] | 
| 50 set end_sse4_test         [gdb_get_line_number " end sse4_test "] | 45 set end_sse4_test         [gdb_get_line_number " end sse4_test "] | 
| 51 | 46 | 
| 52 # Get things started. |  | 
| 53 |  | 
| 54 gdb_exit |  | 
| 55 gdb_start |  | 
| 56 gdb_reinitialize_dir $srcdir/$subdir |  | 
| 57 gdb_load ${binfile} |  | 
| 58 runto main | 47 runto main | 
| 59 | 48 | 
| 60 if [supports_process_record] { | 49 if [supports_process_record] { | 
| 61     # Activate process record/replay | 50     # Activate process record/replay | 
| 62     gdb_test_no_output "record" "Turn on process record" | 51     gdb_test_no_output "record" "Turn on process record" | 
| 63 } | 52 } | 
| 64 | 53 | 
| 65 global hex | 54 global hex | 
| 66 global decimal | 55 global decimal | 
| 67 | 56 | 
| 68 #sse_test | 57 #sse_test | 
| 69 | 58 | 
| 70 gdb_test "break $end_sse_test" \ | 59 gdb_test "break $end_sse_test" \ | 
| 71     "Breakpoint $decimal at .* line $end_sse_test\." \ | 60     "Breakpoint $decimal at .* line $end_sse_test\." \ | 
| 72     "set breakpoint at end of sse_test" | 61     "set breakpoint at end of sse_test" | 
| 73 | 62 | 
| 74 gdb_test "continue" \ | 63 set test "continue to end of sse_test" | 
| 75     " end sse_test .*" \ | 64 gdb_test_multiple "continue" $test { | 
| 76     "continue to end of sse_test" | 65     -re " end sse_test .*\r\n$gdb_prompt $" { | 
|  | 66 »       pass $test | 
|  | 67     } | 
|  | 68     -re " Illegal instruction.*\r\n$gdb_prompt $" { | 
|  | 69 »       untested i386-sse-reverse | 
|  | 70 »       return -1 | 
|  | 71     } | 
|  | 72 } | 
| 77 | 73 | 
| 78 gdb_test "reverse-step" "xorps.*" "reverse-step to xorps" | 74 gdb_test "reverse-step" "xorps.*" "reverse-step to xorps" | 
| 79 | 75 | 
| 80 gdb_test "info register xmm0" \ | 76 gdb_test "info register xmm0" \ | 
| 81     "xmm0 .*uint128 = 0x7f007f007fff7fff7f007f007fff7fff.*" \ | 77     "xmm0 .*uint128 = 0xf000c00080008000f800c00080008000.*" \ | 
| 82     "verify xmm0 at end of sse_test" | 78     "verify xmm0 at end of sse_test" | 
| 83 | 79 | 
| 84 gdb_test "info register xmm1" \ | 80 gdb_test "info register xmm1" \ | 
| 85     "xmm1 .*uint128 = 0x00ff00ff0000000000ff00ff00000000.*" \ | 81     "xmm1 .*uint128 = 0x70004000000000007800400000000000.*" \ | 
| 86     "verify xmm1 at end of sse_test" | 82     "verify xmm1 at end of sse_test" | 
| 87 | 83 | 
| 88 gdb_test "info register xmm2" \ | 84 gdb_test "info register xmm2" \ | 
| 89     "xmm2 .*uint128 = 0x7f007f007f007f007f007f007f007f00.*" \ | 85     "xmm2 .*uint128 = 0xf000c000f800c000f000c000f000c000.*" \ | 
| 90     "verify xmm2 at end of sse_test" | 86     "verify xmm2 at end of sse_test" | 
| 91 | 87 | 
| 92 gdb_test "reverse-step" "xorpd.*" "reverse-step to xorpd" | 88 gdb_test "reverse-step" "xorpd.*" "reverse-step to xorpd" | 
| 93 | 89 | 
| 94 gdb_test "info register xmm0" \ | 90 gdb_test "info register xmm0" \ | 
| 95     "xmm0 .*uint128 = 0x7f007f007fff7fff7f007f007fff7fff.*" \ | 91     "xmm0 .*uint128 = 0xf000c00080008000f800c00080008000.*" \ | 
| 96     "verify xmm0 after reverse xorps" | 92     "verify xmm0 after reverse xorps" | 
| 97 | 93 | 
| 98 gdb_test "info register xmm1" \ | 94 gdb_test "info register xmm1" \ | 
| 99     "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \ | 95     "xmm1 .*uint128 = 0x80008000800080008000800080008000.*" \ | 
| 100     "verify xmm1 after reverse xorps" | 96     "verify xmm1 after reverse xorps" | 
| 101 | 97 | 
| 102 gdb_test "info register xmm2" \ | 98 gdb_test "info register xmm2" \ | 
| 103     "xmm2 .*uint128 = 0x7f007f007f007f007f007f007f007f00.*" \ | 99     "xmm2 .*uint128 = 0xf000c000f800c000f000c000f000c000.*" \ | 
| 104     "verify xmm2 after reverse xorps" | 100     "verify xmm2 after reverse xorps" | 
| 105 | 101 | 
| 106 gdb_test "reverse-step" "unpckhps.*" "reverse-step to unpckhps" | 102 gdb_test "reverse-step" "unpckhps.*" "reverse-step to unpckhps" | 
| 107 | 103 | 
| 108 gdb_test "info register xmm0" \ | 104 gdb_test "info register xmm0" \ | 
| 109     "xmm0 .*uint128 = 0x7fff7fff7fff7fff0108000001400000.*" \ | 105     "xmm0 .*uint128 = 0x8000800080008000fff00000ffc00000.*" \ | 
| 110     "verify xmm0 after reverse xorpd" | 106     "verify xmm0 after reverse xorpd" | 
| 111 | 107 | 
| 112 gdb_test "info register xmm1" \ | 108 gdb_test "info register xmm1" \ | 
| 113     "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \ | 109     "xmm1 .*uint128 = 0x80008000800080008000800080008000.*" \ | 
| 114     "verify xmm1 after reverse xorpd" | 110     "verify xmm1 after reverse xorpd" | 
| 115 | 111 | 
| 116 gdb_test "info register xmm2" \ | 112 gdb_test "info register xmm2" \ | 
| 117     "xmm2 .*uint128 = 0x7f007f007f007f007f007f007f007f00.*" \ | 113     "xmm2 .*uint128 = 0xf000c000f800c000f000c000f000c000.*" \ | 
| 118     "verify xmm2 after reverse xorpd" | 114     "verify xmm2 after reverse xorpd" | 
| 119 | 115 | 
| 120 gdb_test "reverse-step" "unpckhpd.*" "reverse-step to unpckhpd" | 116 gdb_test "reverse-step" "unpckhpd.*" "reverse-step to unpckhpd" | 
| 121 | 117 | 
| 122 gdb_test "info register xmm0" \ | 118 gdb_test "info register xmm0" \ | 
| 123     "xmm0 .*uint128 = 0x01080000014000000108000001400000.*" \ | 119     "xmm0 .*uint128 = 0xfff00000ffc00000fff80000ffc00000.*" \ | 
| 124     "verify xmm0 after reverse unpckhps" | 120     "verify xmm0 after reverse unpckhps" | 
| 125 | 121 | 
| 126 gdb_test "info register xmm1" \ | 122 gdb_test "info register xmm1" \ | 
| 127     "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \ | 123     "xmm1 .*uint128 = 0x80008000800080008000800080008000.*" \ | 
| 128     "verify xmm1 after reverse unpckhps" | 124     "verify xmm1 after reverse unpckhps" | 
| 129 | 125 | 
| 130 gdb_test "info register xmm2" \ | 126 gdb_test "info register xmm2" \ | 
| 131     "xmm2 .*uint128 = 0x7f007f007f007f007f007f007f007f00.*" \ | 127     "xmm2 .*uint128 = 0xf000c000f800c000f000c000f000c000.*" \ | 
| 132     "verify xmm2 after reverse unpckhps" | 128     "verify xmm2 after reverse unpckhps" | 
| 133 | 129 | 
| 134 gdb_test "reverse-step" "ucomiss.*" "reverse-step to ucomiss" | 130 gdb_test "reverse-step" "ucomiss.*" "reverse-step to ucomiss" | 
| 135 | 131 | 
| 136 gdb_test "info register xmm0" \ | 132 gdb_test "info register xmm0" \ | 
| 137     "xmm0 .*uint128 = 0x01080000014000000108000001400000.*" \ | 133     "xmm0 .*uint128 = 0xfff00000ffc00000fff80000ffc00000.*" \ | 
| 138     "verify xmm0 after reverse unpckhpd" | 134     "verify xmm0 after reverse unpckhpd" | 
| 139 | 135 | 
| 140 gdb_test "info register xmm1" \ | 136 gdb_test "info register xmm1" \ | 
| 141     "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \ | 137     "xmm1 .*uint128 = 0x80008000800080008000800080008000.*" \ | 
| 142     "verify xmm1 after reverse unpckhpd" | 138     "verify xmm1 after reverse unpckhpd" | 
| 143 | 139 | 
| 144 gdb_test "info register xmm2" \ | 140 gdb_test "info register xmm2" \ | 
| 145     "xmm2 .*uint128 = 0x7f007f007f007f007f007f007f007f00.*" \ | 141     "xmm2 .*uint128 = 0xf000c000f800c000f000c000f000c000.*" \ | 
| 146     "verify xmm2 after reverse unpckhpd" | 142     "verify xmm2 after reverse unpckhpd" | 
| 147 | 143 | 
| 148 gdb_test "reverse-step" "ucomisd.*" "reverse-step to ucomisd" | 144 gdb_test "reverse-step" "ucomisd.*" "reverse-step to ucomisd" | 
| 149 | 145 | 
| 150 gdb_test "info register xmm0" \ | 146 gdb_test "info register xmm0" \ | 
| 151     "xmm0 .*uint128 = 0x01080000014000000108000001400000.*" \ | 147     "xmm0 .*uint128 = 0xfff00000ffc00000fff80000ffc00000.*" \ | 
| 152     "verify xmm0 after reverse ucomiss" | 148     "verify xmm0 after reverse ucomiss" | 
| 153 | 149 | 
| 154 gdb_test "info register xmm1" \ | 150 gdb_test "info register xmm1" \ | 
| 155     "xmm1 .*uint128 = 0x7fff7fff7fff7fff7fff7fff7fff7fff.*" \ | 151     "xmm1 .*uint128 = 0x80008000800080008000800080008000.*" \ | 
| 156     "verify xmm1 after reverse ucomiss" | 152     "verify xmm1 after reverse ucomiss" | 
| 157 | 153 | 
| 158 gdb_test "info register xmm2" \ | 154 gdb_test "info register xmm2" \ | 
| 159     "xmm2 .*uint128 = 0x7f007f007f007f007f007f007f007f00.*" \ | 155     "xmm2 .*uint128 = 0xf000c000f800c000f000c000f000c000.*" \ | 
| 160     "verify xmm2 after reverse ucomiss" | 156     "verify xmm2 after reverse ucomiss" | 
| 161 | 157 | 
| 162 gdb_test "reverse-step" "packssdw.*" "reverse-step to packssdw" | 158 gdb_test "reverse-step" "packssdw.*" "reverse-step to packssdw" | 
| 163 | 159 | 
| 164 gdb_test "info register xmm0" \ | 160 gdb_test "info register xmm0" \ | 
| 165     "xmm0 .*uint128 = 0x01080000014000000108000001400000.*" \ | 161     "xmm0 .*uint128 = 0xfff00000ffc00000fff80000ffc00000.*" \ | 
| 166     "verify xmm0 after reverse ucomisd" | 162     "verify xmm0 after reverse ucomisd" | 
| 167 | 163 | 
| 168 gdb_test "info register xmm1" \ | 164 gdb_test "info register xmm1" \ | 
| 169     "xmm1 .*uint128 = 0x01080000014000000108000001400000.*" \ | 165     "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \ | 
| 170     "verify xmm1 after reverse ucomisd" | 166     "verify xmm1 after reverse ucomisd" | 
| 171 | 167 | 
| 172 gdb_test "info register xmm2" \ | 168 gdb_test "info register xmm2" \ | 
| 173     "xmm2 .*uint128 = 0x7f007f007f007f007f007f007f007f00.*" \ | 169     "xmm2 .*uint128 = 0xf000c000f800c000f000c000f000c000.*" \ | 
| 174     "verify xmm2 after reverse ucomisd" | 170     "verify xmm2 after reverse ucomisd" | 
| 175 | 171 | 
| 176 gdb_test "reverse-step" "packsswb.*" "reverse-step to packsswb" | 172 gdb_test "reverse-step" "packsswb.*" "reverse-step to packsswb" | 
| 177 | 173 | 
| 178 gdb_test "info register xmm0" \ | 174 gdb_test "info register xmm0" \ | 
| 179     "xmm0 .*uint128 = 0x01080000014000000108000001400000.*" \ | 175     "xmm0 .*uint128 = 0xfff00000ffc00000fff80000ffc00000.*" \ | 
| 180     "verify xmm0 after reverse packssdw" | 176     "verify xmm0 after reverse packssdw" | 
| 181 | 177 | 
| 182 gdb_test "info register xmm1" \ | 178 gdb_test "info register xmm1" \ | 
| 183     "xmm1 .*uint128 = 0x01080000014000000108000001400000.*" \ | 179     "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \ | 
| 184     "verify xmm1 after reverse packssdw" | 180     "verify xmm1 after reverse packssdw" | 
| 185 | 181 | 
| 186 gdb_test "info register xmm2" \ | 182 gdb_test "info register xmm2" \ | 
| 187     "xmm2 .*uint128 = 0x01080000014000000108000001400000.*" \ | 183     "xmm2 .*uint128 = 0xfff00000ffc00000fff00000ffc00000.*" \ | 
| 188     "verify xmm2 after reverse packssdw" | 184     "verify xmm2 after reverse packssdw" | 
| 189 | 185 | 
| 190 gdb_test "reverse-step" "pabsd.*" "reverse-step to pabsd" | 186 gdb_test "reverse-step" "orps.*" "reverse-step to orps" | 
| 191 | 187 | 
| 192 gdb_test "info register xmm0" \ | 188 gdb_test "info register xmm0" \ | 
| 193     "xmm0 .*uint128 = 0xfff00000ffc00000fff80000ffc00000.*" \ | 189     "xmm0 .*uint128 = 0xfff00000ffc00000fff80000ffc00000.*" \ | 
| 194     "verify xmm0 after reverse packsswb" | 190     "verify xmm0 after reverse packsswb" | 
| 195 | 191 | 
| 196 gdb_test "info register xmm1" \ | 192 gdb_test "info register xmm1" \ | 
| 197     "xmm1 .*uint128 = 0x01080000014000000108000001400000.*" \ | 193     "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \ | 
| 198     "verify xmm1 after reverse packsswb" | 194     "verify xmm1 after reverse packsswb" | 
| 199 | 195 | 
| 200 gdb_test "info register xmm2" \ | 196 gdb_test "info register xmm2" \ | 
| 201     "xmm2 .*uint128 = 0x01080000014000000108000001400000.*" \ | 197     "xmm2 .*uint128 = 0xfff00000ffc00000fff00000ffc00000.*" \ | 
| 202     "verify xmm2 after reverse packsswb" | 198     "verify xmm2 after reverse packsswb" | 
| 203 | 199 | 
| 204 gdb_test "reverse-step" "pabsw.*" "reverse-step to pabsw" |  | 
| 205 |  | 
| 206 gdb_test "info register xmm0" \ |  | 
| 207     "xmm0 .*uint128 = 0xfff00000ffc00000fff80000ffc00000.*" \ |  | 
| 208     "verify xmm0 after reverse pabsd" |  | 
| 209 |  | 
| 210 gdb_test "info register xmm1" \ |  | 
| 211     "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \ |  | 
| 212     "verify xmm1 after reverse pabsd" |  | 
| 213 |  | 
| 214 gdb_test "info register xmm2" \ |  | 
| 215     "xmm2 .*uint128 = 0x01080000014000000108000001400000.*" \ |  | 
| 216     "verify xmm2 after reverse pabsd" |  | 
| 217 |  | 
| 218 gdb_test "reverse-step" "pabsb.*" "reverse-step to pabsb" |  | 
| 219 |  | 
| 220 gdb_test "info register xmm0" \ |  | 
| 221     "xmm0 .*uint128 = 0xfff00000ffc00000fff80000ffc00000.*" \ |  | 
| 222     "verify xmm0 after reverse pabsw" |  | 
| 223 |  | 
| 224 gdb_test "info register xmm1" \ |  | 
| 225     "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \ |  | 
| 226     "verify xmm1 after reverse pabsw" |  | 
| 227 |  | 
| 228 gdb_test "info register xmm2" \ |  | 
| 229     "xmm2 .*uint128 = 0xfff00000ffc00000fff00000ffc00000.*" \ |  | 
| 230     "verify xmm2 after reverse pabsw" |  | 
| 231 |  | 
| 232 gdb_test "reverse-step" "orps.*" "reverse-step to orps" |  | 
| 233 |  | 
| 234 gdb_test "info register xmm0" \ |  | 
| 235     "xmm0 .*uint128 = 0xfff00000ffc00000fff80000ffc00000.*" \ |  | 
| 236     "verify xmm0 after reverse pabsb" |  | 
| 237 |  | 
| 238 gdb_test "info register xmm1" \ |  | 
| 239     "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \ |  | 
| 240     "verify xmm1 after reverse pabsb" |  | 
| 241 |  | 
| 242 gdb_test "info register xmm2" \ |  | 
| 243     "xmm2 .*uint128 = 0xfff00000ffc00000fff00000ffc00000.*" \ |  | 
| 244     "verify xmm2 after reverse pabsb" |  | 
| 245 |  | 
| 246 gdb_test "reverse-step" "orpd.*" "reverse-step to orpd" | 200 gdb_test "reverse-step" "orpd.*" "reverse-step to orpd" | 
| 247 | 201 | 
| 248 gdb_test "info register xmm0" \ | 202 gdb_test "info register xmm0" \ | 
| 249     "xmm0 .*uint128 = 0x0000000000000000fff80000ffc00000.*" \ | 203     "xmm0 .*uint128 = 0x0000000000000000fff80000ffc00000.*" \ | 
| 250     "verify xmm0 after reverse orps" | 204     "verify xmm0 after reverse orps" | 
| 251 | 205 | 
| 252 gdb_test "info register xmm1" \ | 206 gdb_test "info register xmm1" \ | 
| 253     "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \ | 207     "xmm1 .*uint128 = 0xfff80000ffc00000fff80000ffc00000.*" \ | 
| 254     "verify xmm1 after reverse orps" | 208     "verify xmm1 after reverse orps" | 
| 255 | 209 | 
| (...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 615 | 569 | 
| 616 gdb_test "info register xmm1" \ | 570 gdb_test "info register xmm1" \ | 
| 617     "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ | 571     "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ | 
| 618     "verify xmm1 after reverse addps" | 572     "verify xmm1 after reverse addps" | 
| 619 | 573 | 
| 620 gdb_test "info register xmm2" \ | 574 gdb_test "info register xmm2" \ | 
| 621     "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \ | 575     "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \ | 
| 622     "verify xmm2 after reverse addps" | 576     "verify xmm2 after reverse addps" | 
| 623 | 577 | 
| 624 | 578 | 
|  | 579 #ssse3_test | 
|  | 580 | 
|  | 581 gdb_test "continue" \ | 
|  | 582     " end sse_test .*" \ | 
|  | 583     "continue to end of sse_test #2" | 
|  | 584 | 
|  | 585 gdb_test "break $end_ssse3_test" \ | 
|  | 586     "Breakpoint $decimal at .* line $end_ssse3_test\." \ | 
|  | 587     "set breakpoint at end of ssse3_test" | 
|  | 588 | 
|  | 589 set test "continue to end of ssse3_test" | 
|  | 590 gdb_test_multiple "continue" $test { | 
|  | 591     -re " end ssse3_test .*\r\n$gdb_prompt $" { | 
|  | 592         pass $test | 
|  | 593     } | 
|  | 594     -re " Illegal instruction.*\r\n$gdb_prompt $" { | 
|  | 595         untested i386-ssse3-reverse | 
|  | 596         return -1 | 
|  | 597     } | 
|  | 598 } | 
|  | 599 | 
|  | 600 gdb_test "info register xmm0" \ | 
|  | 601     "xmm0 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ | 
|  | 602     "verify xmm0 at end of ssse3_test" | 
|  | 603 | 
|  | 604 gdb_test "info register xmm1" \ | 
|  | 605     "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ | 
|  | 606     "verify xmm1 at end of ssse3_test" | 
|  | 607 | 
|  | 608 gdb_test "info register xmm2" \ | 
|  | 609     "xmm2 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ | 
|  | 610     "verify xmm2 at end of ssse3_test" | 
|  | 611 | 
|  | 612 gdb_test "reverse-step" "pabsd.*" "reverse-step to pabsd" | 
|  | 613 | 
|  | 614 gdb_test "info register xmm0" \ | 
|  | 615     "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \ | 
|  | 616     "verify xmm0 after reverse pabsd" | 
|  | 617 | 
|  | 618 gdb_test "info register xmm1" \ | 
|  | 619     "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ | 
|  | 620     "verify xmm1 after reverse pabsd" | 
|  | 621 | 
|  | 622 gdb_test "info register xmm2" \ | 
|  | 623     "xmm2 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ | 
|  | 624     "verify xmm2 after reverse pabsd" | 
|  | 625 | 
|  | 626 gdb_test "reverse-step" "pabsw.*" "reverse-step to pabsw" | 
|  | 627 | 
|  | 628 gdb_test "info register xmm0" \ | 
|  | 629     "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \ | 
|  | 630     "verify xmm0 after reverse pabsw" | 
|  | 631 | 
|  | 632 gdb_test "info register xmm1" \ | 
|  | 633     "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ | 
|  | 634     "verify xmm1 after reverse pabsw" | 
|  | 635 | 
|  | 636 gdb_test "info register xmm2" \ | 
|  | 637     "xmm2 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ | 
|  | 638     "verify xmm2 after reverse pabsw" | 
|  | 639 | 
|  | 640 gdb_test "reverse-step" "pabsb.*" "reverse-step to pabsb" | 
|  | 641 | 
|  | 642 gdb_test "info register xmm0" \ | 
|  | 643     "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \ | 
|  | 644     "verify xmm0 after reverse pabsb" | 
|  | 645 | 
|  | 646 gdb_test "info register xmm1" \ | 
|  | 647     "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ | 
|  | 648     "verify xmm1 after reverse pabsb" | 
|  | 649 | 
|  | 650 gdb_test "info register xmm2" \ | 
|  | 651     "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \ | 
|  | 652     "verify xmm2 after reverse pabsb" | 
|  | 653 | 
|  | 654 | 
| 625 #sse4_test | 655 #sse4_test | 
| 626 | 656 | 
| 627 gdb_test "continue" \ | 657 gdb_test "continue" \ | 
| 628     " end sse_test .*" \ | 658     " end ssse3_test .*" \ | 
| 629     "continue to end of sse_test #2" | 659     "continue to end of ssse3_test #2" | 
| 630 | 660 | 
| 631 gdb_test "break $end_sse4_test" \ | 661 gdb_test "break $end_sse4_test" \ | 
| 632     "Breakpoint $decimal at .* line $end_sse4_test\." \ | 662     "Breakpoint $decimal at .* line $end_sse4_test\." \ | 
| 633     "set breakpoint at end of sse4_test" | 663     "set breakpoint at end of sse4_test" | 
| 634 | 664 | 
| 635 set test "continue to end of sse4_test" | 665 set test "continue to end of sse4_test" | 
| 636 gdb_test_multiple "continue" $test { | 666 gdb_test_multiple "continue" $test { | 
| 637     -re " end sse4_test .*\r\n$gdb_prompt $" { | 667     -re " end sse4_test .*\r\n$gdb_prompt $" { | 
| 638         pass $test | 668         pass $test | 
| 639     } | 669     } | 
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 691     "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \ | 721     "xmm0 .*uint128 = 0x0f0e0d0c0b0a09080706050403020100.*" \ | 
| 692     "verify xmm0 after reverse blendps" | 722     "verify xmm0 after reverse blendps" | 
| 693 | 723 | 
| 694 gdb_test "info register xmm1" \ | 724 gdb_test "info register xmm1" \ | 
| 695     "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ | 725     "xmm1 .*uint128 = 0x1f1e1d1c1b1a19181716151413121110.*" \ | 
| 696     "verify xmm1 after reverse blendps" | 726     "verify xmm1 after reverse blendps" | 
| 697 | 727 | 
| 698 gdb_test "info register xmm2" \ | 728 gdb_test "info register xmm2" \ | 
| 699     "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \ | 729     "xmm2 .*uint128 = 0x2f2e2d2c2b2a29282726252423222120.*" \ | 
| 700     "verify xmm2 after reverse blendps" | 730     "verify xmm2 after reverse blendps" | 
| OLD | NEW | 
|---|