Blame SOURCES/gdb-test-ivy-bridge.patch

4c2ad1
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
4c2ad1
From: Fedora GDB patches <invalid@email.com>
4c2ad1
Date: Fri, 27 Oct 2017 21:07:50 +0200
4c2ad1
Subject: gdb-test-ivy-bridge.patch
4c2ad1
4c2ad1
;; Test GDB opcodes/ disassembly of Intel Ivy Bridge instructions (BZ 696890).
4c2ad1
;;=fedoratest
4c2ad1
4c2ad1
diff --git a/gdb/testsuite/gdb.arch/amd64-ivy-bridge.S b/gdb/testsuite/gdb.arch/amd64-ivy-bridge.S
4c2ad1
new file mode 100644
4c2ad1
--- /dev/null
4c2ad1
+++ b/gdb/testsuite/gdb.arch/amd64-ivy-bridge.S
4c2ad1
@@ -0,0 +1,98 @@
4c2ad1
+/* Copyright 2011 Free Software Foundation, Inc.
4c2ad1
+
4c2ad1
+   This program is free software; you can redistribute it and/or modify
4c2ad1
+   it under the terms of the GNU General Public License as published by
4c2ad1
+   the Free Software Foundation; either version 3 of the License, or
4c2ad1
+   (at your option) any later version.
4c2ad1
+
4c2ad1
+   This program is distributed in the hope that it will be useful,
4c2ad1
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
4c2ad1
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
4c2ad1
+   GNU General Public License for more details.
4c2ad1
+
4c2ad1
+   You should have received a copy of the GNU General Public License
4c2ad1
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
4c2ad1
+
4c2ad1
+   This file is part of the gdb testsuite.  */
4c2ad1
+
4c2ad1
+	.globl _start
4c2ad1
+_start:	.text
4c2ad1
+
4c2ad1
+/* gas/i386/x86-64-rdrnd.s */
4c2ad1
+	.att_syntax prefix
4c2ad1
+	rdrand %bx
4c2ad1
+	rdrand %ebx
4c2ad1
+	rdrand %rbx
4c2ad1
+	rdrand %r8w
4c2ad1
+	rdrand %r8d
4c2ad1
+	rdrand %r8
4c2ad1
+
4c2ad1
+	.intel_syntax noprefix
4c2ad1
+	rdrand bx
4c2ad1
+	rdrand ebx
4c2ad1
+	rdrand rbx
4c2ad1
+	rdrand r8w
4c2ad1
+	rdrand r8d
4c2ad1
+	rdrand r8
4c2ad1
+
4c2ad1
+/* gas/i386/x86-64-f16c.s */
4c2ad1
+	.att_syntax prefix
4c2ad1
+	vcvtph2ps %xmm4,%ymm4
4c2ad1
+	vcvtph2ps (%r8),%ymm8
4c2ad1
+	vcvtph2ps %xmm4,%xmm6
4c2ad1
+	vcvtph2ps (%rcx),%xmm4
4c2ad1
+	vcvtps2ph $0x2,%ymm4,%xmm4
4c2ad1
+	vcvtps2ph $0x2,%ymm8,(%r8)
4c2ad1
+	vcvtps2ph $0x2,%xmm4,%xmm4
4c2ad1
+	vcvtps2ph $0x2,%xmm4,(%rcx) 
4c2ad1
+
4c2ad1
+	.intel_syntax noprefix
4c2ad1
+	vcvtph2ps ymm4,xmm4
4c2ad1
+	vcvtph2ps ymm8,XMMWORD PTR [r8]
4c2ad1
+	vcvtph2ps ymm4,[rcx]
4c2ad1
+	vcvtph2ps xmm6,xmm4
4c2ad1
+	vcvtph2ps xmm4,QWORD PTR [rcx]          
4c2ad1
+	vcvtph2ps xmm4,[rcx]
4c2ad1
+	vcvtps2ph xmm4,ymm4,0x2
4c2ad1
+	vcvtps2ph XMMWORD PTR [rcx],ymm4,0x2    
4c2ad1
+	vcvtps2ph [rcx],ymm4,0x2 
4c2ad1
+	vcvtps2ph xmm4,xmm4,0x2
4c2ad1
+	vcvtps2ph QWORD PTR [r8],xmm8,0x2       
4c2ad1
+	vcvtps2ph [rcx],xmm4,0x2 
4c2ad1
+
4c2ad1
+/* gas/i386/x86-64-fsgs.s */
4c2ad1
+	.att_syntax prefix
4c2ad1
+	rdfsbase %ebx
4c2ad1
+	rdfsbase %rbx
4c2ad1
+	rdfsbase %r8d
4c2ad1
+	rdfsbase %r8
4c2ad1
+	rdgsbase %ebx
4c2ad1
+	rdgsbase %rbx   
4c2ad1
+	rdgsbase %r8d   
4c2ad1
+	rdgsbase %r8    
4c2ad1
+	wrfsbase %ebx   
4c2ad1
+	wrfsbase %rbx   
4c2ad1
+	wrfsbase %r8d   
4c2ad1
+	wrfsbase %r8    
4c2ad1
+	wrgsbase %ebx   
4c2ad1
+	wrgsbase %rbx   
4c2ad1
+	wrgsbase %r8d   
4c2ad1
+	wrgsbase %r8    
4c2ad1
+
4c2ad1
+	.intel_syntax noprefix
4c2ad1
+	rdfsbase ebx    
4c2ad1
+	rdfsbase rbx    
4c2ad1
+	rdfsbase r8d    
4c2ad1
+	rdfsbase r8
4c2ad1
+	rdgsbase ebx    
4c2ad1
+	rdgsbase rbx    
4c2ad1
+	rdgsbase r8d    
4c2ad1
+	rdgsbase r8
4c2ad1
+	wrfsbase ebx    
4c2ad1
+	wrfsbase rbx    
4c2ad1
+	wrfsbase r8d    
4c2ad1
+	wrfsbase r8
4c2ad1
+	wrgsbase ebx    
4c2ad1
+	wrgsbase rbx    
4c2ad1
+	wrgsbase r8d    
4c2ad1
+	wrgsbase r8
4c2ad1
diff --git a/gdb/testsuite/gdb.arch/amd64-ivy-bridge.exp b/gdb/testsuite/gdb.arch/amd64-ivy-bridge.exp
4c2ad1
new file mode 100644
4c2ad1
--- /dev/null
4c2ad1
+++ b/gdb/testsuite/gdb.arch/amd64-ivy-bridge.exp
4c2ad1
@@ -0,0 +1,170 @@
4c2ad1
+# Copyright 2011 Free Software Foundation, Inc.
4c2ad1
+
4c2ad1
+# This program is free software; you can redistribute it and/or modify
4c2ad1
+# it under the terms of the GNU General Public License as published by
4c2ad1
+# the Free Software Foundation; either version 3 of the License, or
4c2ad1
+# (at your option) any later version.
4c2ad1
+#
4c2ad1
+# This program is distributed in the hope that it will be useful,
4c2ad1
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
4c2ad1
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
4c2ad1
+# GNU General Public License for more details.
4c2ad1
+#
4c2ad1
+# You should have received a copy of the GNU General Public License
4c2ad1
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
4c2ad1
+
4c2ad1
+if {![istarget "x86_64-*-*"]} then {
4c2ad1
+    return
4c2ad1
+}
4c2ad1
+
4c2ad1
+set testfile amd64-ivy-bridge
4c2ad1
+set test compilation
4c2ad1
+if [prepare_for_testing ${testfile}.exp ${testfile}.x ${testfile}.S [list debug "additional_flags=-m64 -nostdlib"]] {
4c2ad1
+    fail $test
4c2ad1
+    return -1
4c2ad1
+}
4c2ad1
+pass $test
4c2ad1
+
4c2ad1
+gdb_test_no_output "set disassembly-flavor att"
4c2ad1
+# gas/i386/x86-64-rdrnd.d
4c2ad1
+# gas/i386/x86-64-f16c.d
4c2ad1
+# gas/i386/x86-64-fsgs.d
4c2ad1
+gdb_test "disassemble/r _start" "\r
4c2ad1
+Dump of assembler code for function _start:\r
4c2ad1
+\[^\r\n\]+:\t66 0f c7 f3\t\(             \)?rdrand %bx\r
4c2ad1
+\[^\r\n\]+:\t0f c7 f3\t\(                \)?rdrand %ebx\r
4c2ad1
+\[^\r\n\]+:\t48 0f c7 f3\t\(             \)?rdrand %rbx\r
4c2ad1
+\[^\r\n\]+:\t66 41 0f c7 f0\t\(          \)?rdrand %r8w\r
4c2ad1
+\[^\r\n\]+:\t41 0f c7 f0\t\(             \)?rdrand %r8d\r
4c2ad1
+\[^\r\n\]+:\t49 0f c7 f0\t\(             \)?rdrand %r8\r
4c2ad1
+\[^\r\n\]+:\t66 0f c7 f3\t\(             \)?rdrand %bx\r
4c2ad1
+\[^\r\n\]+:\t0f c7 f3\t\(                \)?rdrand %ebx\r
4c2ad1
+\[^\r\n\]+:\t48 0f c7 f3\t\(             \)?rdrand %rbx\r
4c2ad1
+\[^\r\n\]+:\t66 41 0f c7 f0\t\(          \)?rdrand %r8w\r
4c2ad1
+\[^\r\n\]+:\t41 0f c7 f0\t\(             \)?rdrand %r8d\r
4c2ad1
+\[^\r\n\]+:\t49 0f c7 f0\t\(             \)?rdrand %r8\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\(          \)?vcvtph2ps %xmm4,%ymm4\r
4c2ad1
+\[^\r\n\]+:\tc4 42 7d 13 00\t\(          \)?vcvtph2ps \\(%r8\\),%ymm8\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\(          \)?vcvtph2ps %xmm4,%xmm6\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 21\t\(          \)?vcvtph2ps \\(%rcx\\),%xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\(       \)?vcvtps2ph \\\$0x2,%ymm4,%xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 43 7d 1d 00 02\t\(       \)?vcvtps2ph \\\$0x2,%ymm8,\\(%r8\\)\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\(       \)?vcvtps2ph \\\$0x2,%xmm4,%xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\(       \)?vcvtps2ph \\\$0x2,%xmm4,\\(%rcx\\)\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\(          \)?vcvtph2ps %xmm4,%ymm4\r
4c2ad1
+\[^\r\n\]+:\tc4 42 7d 13 00\t\(          \)?vcvtph2ps \\(%r8\\),%ymm8\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\(          \)?vcvtph2ps \\(%rcx\\),%ymm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\(          \)?vcvtph2ps %xmm4,%xmm6\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 21\t\(          \)?vcvtph2ps \\(%rcx\\),%xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 21\t\(          \)?vcvtph2ps \\(%rcx\\),%xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\(       \)?vcvtps2ph \\\$0x2,%ymm4,%xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\(       \)?vcvtps2ph \\\$0x2,%ymm4,\\(%rcx\\)\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\(       \)?vcvtps2ph \\\$0x2,%ymm4,\\(%rcx\\)\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\(       \)?vcvtps2ph \\\$0x2,%xmm4,%xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 43 79 1d 00 02\t\(       \)?vcvtps2ph \\\$0x2,%xmm8,\\(%r8\\)\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\(       \)?vcvtps2ph \\\$0x2,%xmm4,\\(%rcx\\)\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae c3\t\(             \)?rdfsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae c3\t\(          \)?rdfsbase %rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae c0\t\(          \)?rdfsbase %r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae c0\t\(          \)?rdfsbase %r8\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae cb\t\(             \)?rdgsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae cb\t\(          \)?rdgsbase %rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae c8\t\(          \)?rdgsbase %r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae c8\t\(          \)?rdgsbase %r8\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae d3\t\(             \)?wrfsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae d3\t\(          \)?wrfsbase %rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae d0\t\(          \)?wrfsbase %r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae d0\t\(          \)?wrfsbase %r8\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae db\t\(             \)?wrgsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae db\t\(          \)?wrgsbase %rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae d8\t\(          \)?wrgsbase %r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae d8\t\(          \)?wrgsbase %r8\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae c3\t\(             \)?rdfsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae c3\t\(          \)?rdfsbase %rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae c0\t\(          \)?rdfsbase %r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae c0\t\(          \)?rdfsbase %r8\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae cb\t\(             \)?rdgsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae cb\t\(          \)?rdgsbase %rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae c8\t\(          \)?rdgsbase %r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae c8\t\(          \)?rdgsbase %r8\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae d3\t\(             \)?wrfsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae d3\t\(          \)?wrfsbase %rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae d0\t\(          \)?wrfsbase %r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae d0\t\(          \)?wrfsbase %r8\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae db\t\(             \)?wrgsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae db\t\(          \)?wrgsbase %rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae d8\t\(          \)?wrgsbase %r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae d8\t\(          \)?wrgsbase %r8\r
4c2ad1
+End of assembler dump\\." "att"
4c2ad1
+
4c2ad1
+gdb_test_no_output "set disassembly-flavor intel"
4c2ad1
+# gas/i386/x86-64-rdrnd-intel.d
4c2ad1
+# gas/i386/x86-64-f16c-intel.d
4c2ad1
+# gas/i386/x86-64-fsgs-intel.d
4c2ad1
+gdb_test "disassemble/r _start" "\r
4c2ad1
+Dump of assembler code for function _start:\r
4c2ad1
+\[^\r\n\]+:\t66 0f c7 f3\t\(             \)?rdrand bx\r
4c2ad1
+\[^\r\n\]+:\t0f c7 f3\t\(                \)?rdrand ebx\r
4c2ad1
+\[^\r\n\]+:\t48 0f c7 f3\t\(             \)?rdrand rbx\r
4c2ad1
+\[^\r\n\]+:\t66 41 0f c7 f0\t\(          \)?rdrand r8w\r
4c2ad1
+\[^\r\n\]+:\t41 0f c7 f0\t\(             \)?rdrand r8d\r
4c2ad1
+\[^\r\n\]+:\t49 0f c7 f0\t\(             \)?rdrand r8\r
4c2ad1
+\[^\r\n\]+:\t66 0f c7 f3\t\(             \)?rdrand bx\r
4c2ad1
+\[^\r\n\]+:\t0f c7 f3\t\(                \)?rdrand ebx\r
4c2ad1
+\[^\r\n\]+:\t48 0f c7 f3\t\(             \)?rdrand rbx\r
4c2ad1
+\[^\r\n\]+:\t66 41 0f c7 f0\t\(          \)?rdrand r8w\r
4c2ad1
+\[^\r\n\]+:\t41 0f c7 f0\t\(             \)?rdrand r8d\r
4c2ad1
+\[^\r\n\]+:\t49 0f c7 f0\t\(             \)?rdrand r8\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\(          \)?vcvtph2ps ymm4,xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 42 7d 13 00\t\(          \)?vcvtph2ps ymm8,XMMWORD PTR \\\[r8\\\]\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\(          \)?vcvtph2ps xmm6,xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 21\t\(          \)?vcvtph2ps xmm4,QWORD PTR \\\[rcx\\\]\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\(       \)?vcvtps2ph xmm4,ymm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 43 7d 1d 00 02\t\(       \)?vcvtps2ph XMMWORD PTR \\\[r8\\\],ymm8,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\(       \)?vcvtps2ph xmm4,xmm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\(       \)?vcvtps2ph QWORD PTR \\\[rcx\\\],xmm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\(          \)?vcvtph2ps ymm4,xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 42 7d 13 00\t\(          \)?vcvtph2ps ymm8,XMMWORD PTR \\\[r8\\\]\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\(          \)?vcvtph2ps ymm4,XMMWORD PTR \\\[rcx\\\]\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\(          \)?vcvtph2ps xmm6,xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 21\t\(          \)?vcvtph2ps xmm4,QWORD PTR \\\[rcx\\\]\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 21\t\(          \)?vcvtph2ps xmm4,QWORD PTR \\\[rcx\\\]\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\(       \)?vcvtps2ph xmm4,ymm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\(       \)?vcvtps2ph XMMWORD PTR \\\[rcx\\\],ymm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\(       \)?vcvtps2ph XMMWORD PTR \\\[rcx\\\],ymm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\(       \)?vcvtps2ph xmm4,xmm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 43 79 1d 00 02\t\(       \)?vcvtps2ph QWORD PTR \\\[r8\\\],xmm8,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\(       \)?vcvtps2ph QWORD PTR \\\[rcx\\\],xmm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae c3\t\(             \)?rdfsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae c3\t\(          \)?rdfsbase rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae c0\t\(          \)?rdfsbase r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae c0\t\(          \)?rdfsbase r8\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae cb\t\(             \)?rdgsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae cb\t\(          \)?rdgsbase rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae c8\t\(          \)?rdgsbase r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae c8\t\(          \)?rdgsbase r8\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae d3\t\(             \)?wrfsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae d3\t\(          \)?wrfsbase rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae d0\t\(          \)?wrfsbase r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae d0\t\(          \)?wrfsbase r8\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae db\t\(             \)?wrgsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae db\t\(          \)?wrgsbase rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae d8\t\(          \)?wrgsbase r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae d8\t\(          \)?wrgsbase r8\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae c3\t\(             \)?rdfsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae c3\t\(          \)?rdfsbase rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae c0\t\(          \)?rdfsbase r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae c0\t\(          \)?rdfsbase r8\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae cb\t\(             \)?rdgsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae cb\t\(          \)?rdgsbase rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae c8\t\(          \)?rdgsbase r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae c8\t\(          \)?rdgsbase r8\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae d3\t\(             \)?wrfsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae d3\t\(          \)?wrfsbase rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae d0\t\(          \)?wrfsbase r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae d0\t\(          \)?wrfsbase r8\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae db\t\(             \)?wrgsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 48 0f ae db\t\(          \)?wrgsbase rbx\r
4c2ad1
+\[^\r\n\]+:\tf3 41 0f ae d8\t\(          \)?wrgsbase r8d\r
4c2ad1
+\[^\r\n\]+:\tf3 49 0f ae d8\t\(          \)?wrgsbase r8\r
4c2ad1
+End of assembler dump\\." "intel"
4c2ad1
diff --git a/gdb/testsuite/gdb.arch/i386-ivy-bridge.S b/gdb/testsuite/gdb.arch/i386-ivy-bridge.S
4c2ad1
new file mode 100644
4c2ad1
--- /dev/null
4c2ad1
+++ b/gdb/testsuite/gdb.arch/i386-ivy-bridge.S
4c2ad1
@@ -0,0 +1,67 @@
4c2ad1
+/* Copyright 2011 Free Software Foundation, Inc.
4c2ad1
+
4c2ad1
+   This program is free software; you can redistribute it and/or modify
4c2ad1
+   it under the terms of the GNU General Public License as published by
4c2ad1
+   the Free Software Foundation; either version 3 of the License, or
4c2ad1
+   (at your option) any later version.
4c2ad1
+
4c2ad1
+   This program is distributed in the hope that it will be useful,
4c2ad1
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
4c2ad1
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
4c2ad1
+   GNU General Public License for more details.
4c2ad1
+
4c2ad1
+   You should have received a copy of the GNU General Public License
4c2ad1
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
4c2ad1
+
4c2ad1
+   This file is part of the gdb testsuite.  */
4c2ad1
+
4c2ad1
+	.globl _start
4c2ad1
+_start:	.text
4c2ad1
+
4c2ad1
+/* gas/i386/rdrnd.s */
4c2ad1
+	.att_syntax prefix
4c2ad1
+	rdrand %bx
4c2ad1
+	rdrand %ebx
4c2ad1
+
4c2ad1
+	.intel_syntax noprefix
4c2ad1
+	rdrand bx
4c2ad1
+	rdrand ebx
4c2ad1
+
4c2ad1
+/* gas/i386/f16c.s */
4c2ad1
+	.att_syntax prefix
4c2ad1
+	vcvtph2ps %xmm4,%ymm4
4c2ad1
+	vcvtph2ps (%ecx),%ymm4
4c2ad1
+	vcvtph2ps %xmm4,%xmm6
4c2ad1
+	vcvtph2ps (%ecx),%xmm4
4c2ad1
+	vcvtps2ph $0x2,%ymm4,%xmm4
4c2ad1
+	vcvtps2ph $0x2,%ymm4,(%ecx) 
4c2ad1
+	vcvtps2ph $0x2,%xmm4,%xmm4
4c2ad1
+	vcvtps2ph $0x2,%xmm4,(%ecx) 
4c2ad1
+
4c2ad1
+	.intel_syntax noprefix
4c2ad1
+	vcvtph2ps ymm4,xmm4
4c2ad1
+	vcvtph2ps ymm4,XMMWORD PTR [ecx]
4c2ad1
+	vcvtph2ps ymm4,[ecx]
4c2ad1
+	vcvtph2ps xmm6,xmm4
4c2ad1
+	vcvtph2ps xmm4,QWORD PTR [ecx]          
4c2ad1
+	vcvtph2ps xmm4,[ecx]
4c2ad1
+	vcvtps2ph xmm4,ymm4,0x2
4c2ad1
+	vcvtps2ph XMMWORD PTR [ecx],ymm4,0x2    
4c2ad1
+	vcvtps2ph [ecx],ymm4,0x2 
4c2ad1
+	vcvtps2ph xmm4,xmm4,0x2
4c2ad1
+	vcvtps2ph QWORD PTR [ecx],xmm4,0x2      
4c2ad1
+	vcvtps2ph [ecx],xmm4,0x2 
4c2ad1
+
4c2ad1
+/* gas/i386/fsgs.s */
4c2ad1
+	.att_syntax prefix
4c2ad1
+	rdfsbase %ebx
4c2ad1
+	rdgsbase %ebx
4c2ad1
+	wrfsbase %ebx
4c2ad1
+	wrgsbase %ebx
4c2ad1
+
4c2ad1
+	.intel_syntax noprefix
4c2ad1
+	rdfsbase ebx    
4c2ad1
+	rdgsbase ebx    
4c2ad1
+	wrfsbase ebx    
4c2ad1
+	wrgsbase ebx    
4c2ad1
+
4c2ad1
diff --git a/gdb/testsuite/gdb.arch/i386-ivy-bridge.exp b/gdb/testsuite/gdb.arch/i386-ivy-bridge.exp
4c2ad1
new file mode 100644
4c2ad1
--- /dev/null
4c2ad1
+++ b/gdb/testsuite/gdb.arch/i386-ivy-bridge.exp
4c2ad1
@@ -0,0 +1,106 @@
4c2ad1
+# Copyright 2011 Free Software Foundation, Inc.
4c2ad1
+
4c2ad1
+# This program is free software; you can redistribute it and/or modify
4c2ad1
+# it under the terms of the GNU General Public License as published by
4c2ad1
+# the Free Software Foundation; either version 3 of the License, or
4c2ad1
+# (at your option) any later version.
4c2ad1
+#
4c2ad1
+# This program is distributed in the hope that it will be useful,
4c2ad1
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
4c2ad1
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
4c2ad1
+# GNU General Public License for more details.
4c2ad1
+#
4c2ad1
+# You should have received a copy of the GNU General Public License
4c2ad1
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
4c2ad1
+
4c2ad1
+if {![istarget "x86_64-*-*"] && ![istarget "i?86-*-*"]} then {
4c2ad1
+    return
4c2ad1
+}
4c2ad1
+
4c2ad1
+set testfile i386-ivy-bridge
4c2ad1
+set test compilation
4c2ad1
+if [prepare_for_testing ${testfile}.exp ${testfile}.x ${testfile}.S [list debug "additional_flags=-m32 -nostdlib"]] {
4c2ad1
+    fail $test
4c2ad1
+    return -1
4c2ad1
+}
4c2ad1
+pass $test
4c2ad1
+
4c2ad1
+gdb_test_no_output "set disassembly-flavor att"
4c2ad1
+# gas/i386/rdrnd.d
4c2ad1
+# gas/i386/f16c.d
4c2ad1
+# gas/i386/fsgs.d
4c2ad1
+gdb_test "disassemble/r _start" "\r
4c2ad1
+Dump of assembler code for function _start:\r
4c2ad1
+\[^\r\n\]+:\t66 0f c7 f3\t\(             \)?rdrand %bx\r
4c2ad1
+\[^\r\n\]+:\t0f c7 f3\t\(                \)?rdrand %ebx\r
4c2ad1
+\[^\r\n\]+:\t66 0f c7 f3\t\(             \)?rdrand %bx\r
4c2ad1
+\[^\r\n\]+:\t0f c7 f3\t\(                \)?rdrand %ebx\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\(          \)?vcvtph2ps %xmm4,%ymm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\(          \)?vcvtph2ps \\(%ecx\\),%ymm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\(          \)?vcvtph2ps %xmm4,%xmm6\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 21\t\(          \)?vcvtph2ps \\(%ecx\\),%xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\(       \)?vcvtps2ph \\\$0x2,%ymm4,%xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\(       \)?vcvtps2ph \\\$0x2,%ymm4,\\(%ecx\\)\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\(       \)?vcvtps2ph \\\$0x2,%xmm4,%xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\(       \)?vcvtps2ph \\\$0x2,%xmm4,\\(%ecx\\)\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\(          \)?vcvtph2ps %xmm4,%ymm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\(          \)?vcvtph2ps \\(%ecx\\),%ymm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\(          \)?vcvtph2ps \\(%ecx\\),%ymm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\(          \)?vcvtph2ps %xmm4,%xmm6\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 21\t\(          \)?vcvtph2ps \\(%ecx\\),%xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 21\t\(          \)?vcvtph2ps \\(%ecx\\),%xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\(       \)?vcvtps2ph \\\$0x2,%ymm4,%xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\(       \)?vcvtps2ph \\\$0x2,%ymm4,\\(%ecx\\)\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\(       \)?vcvtps2ph \\\$0x2,%ymm4,\\(%ecx\\)\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\(       \)?vcvtps2ph \\\$0x2,%xmm4,%xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\(       \)?vcvtps2ph \\\$0x2,%xmm4,\\(%ecx\\)\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\(       \)?vcvtps2ph \\\$0x2,%xmm4,\\(%ecx\\)\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae c3\t\(             \)?rdfsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae cb\t\(             \)?rdgsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae d3\t\(             \)?wrfsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae db\t\(             \)?wrgsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae c3\t\(             \)?rdfsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae cb\t\(             \)?rdgsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae d3\t\(             \)?wrfsbase %ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae db\t\(             \)?wrgsbase %ebx\r
4c2ad1
+End of assembler dump\\." "att"
4c2ad1
+
4c2ad1
+gdb_test_no_output "set disassembly-flavor intel"
4c2ad1
+# gas/i386/rdrnd-intel.d
4c2ad1
+# gas/i386/f16c-intel.d
4c2ad1
+# gas/i386/fsgs-intel.d
4c2ad1
+gdb_test "disassemble/r _start" "\r
4c2ad1
+Dump of assembler code for function _start:\r
4c2ad1
+\[^\r\n\]+:\t66 0f c7 f3\t\(             \)?rdrand bx\r
4c2ad1
+\[^\r\n\]+:\t0f c7 f3\t\(                \)?rdrand ebx\r
4c2ad1
+\[^\r\n\]+:\t66 0f c7 f3\t\(             \)?rdrand bx\r
4c2ad1
+\[^\r\n\]+:\t0f c7 f3\t\(                \)?rdrand ebx\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\(          \)?vcvtph2ps ymm4,xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\(          \)?vcvtph2ps ymm4,XMMWORD PTR \\\[ecx\\\]\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\(          \)?vcvtph2ps xmm6,xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 21\t\(          \)?vcvtph2ps xmm4,QWORD PTR \\\[ecx\\\]\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\(       \)?vcvtps2ph xmm4,ymm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\(       \)?vcvtps2ph XMMWORD PTR \\\[ecx\\\],ymm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\(       \)?vcvtps2ph xmm4,xmm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\(       \)?vcvtps2ph QWORD PTR \\\[ecx\\\],xmm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\(          \)?vcvtph2ps ymm4,xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\(          \)?vcvtph2ps ymm4,XMMWORD PTR \\\[ecx\\\]\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\(          \)?vcvtph2ps ymm4,XMMWORD PTR \\\[ecx\\\]\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\(          \)?vcvtph2ps xmm6,xmm4\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 21\t\(          \)?vcvtph2ps xmm4,QWORD PTR \\\[ecx\\\]\r
4c2ad1
+\[^\r\n\]+:\tc4 e2 79 13 21\t\(          \)?vcvtph2ps xmm4,QWORD PTR \\\[ecx\\\]\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\(       \)?vcvtps2ph xmm4,ymm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\(       \)?vcvtps2ph XMMWORD PTR \\\[ecx\\\],ymm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\(       \)?vcvtps2ph XMMWORD PTR \\\[ecx\\\],ymm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\(       \)?vcvtps2ph xmm4,xmm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\(       \)?vcvtps2ph QWORD PTR \\\[ecx\\\],xmm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\(       \)?vcvtps2ph QWORD PTR \\\[ecx\\\],xmm4,0x2\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae c3\t\(             \)?rdfsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae cb\t\(             \)?rdgsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae d3\t\(             \)?wrfsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae db\t\(             \)?wrgsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae c3\t\(             \)?rdfsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae cb\t\(             \)?rdgsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae d3\t\(             \)?wrfsbase ebx\r
4c2ad1
+\[^\r\n\]+:\tf3 0f ae db\t\(             \)?wrgsbase ebx\r
4c2ad1
+End of assembler dump\\." "intel"