aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
Diffstat (limited to 'gas')
-rw-r--r--gas/testsuite/ChangeLog7
-rw-r--r--gas/testsuite/gas/i386/x86-64-xsave-intel.d42
-rw-r--r--gas/testsuite/gas/i386/x86-64-xsave.d42
-rw-r--r--gas/testsuite/gas/i386/x86-64-xsave.s43
4 files changed, 122 insertions, 12 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 28b4713..925191e 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2010-02-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gas/i386/x86-64-xsave.s: Add tests for xsave64 and xrstor64.
+
+ * gas/i386/x86-64-xsave-intel.d: Updated.
+ * gas/i386/x86-64-xsave.d: Likewise.
+
2010-01-20 Nick Clifton <nickc@redhat.com>
PR 11109
diff --git a/gas/testsuite/gas/i386/x86-64-xsave-intel.d b/gas/testsuite/gas/i386/x86-64-xsave-intel.d
index 4659a2e..ae506d6 100644
--- a/gas/testsuite/gas/i386/x86-64-xsave-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-xsave-intel.d
@@ -8,10 +8,44 @@
Disassembly of section .text:
0+ <_start>:
-[ ]*[a-f0-9]+: 41 0f ae 29 xrstor \[r9\]
-[ ]*[a-f0-9]+: 41 0f ae 21 xsave \[r9\]
[ ]*[a-f0-9]+: 0f 01 d0 xgetbv
[ ]*[a-f0-9]+: 0f 01 d1 xsetbv
-[ ]*[a-f0-9]+: 0f ae 29 xrstor \[rcx\]
-[ ]*[a-f0-9]+: 0f ae 21 xsave \[rcx\]
+[ ]*[a-f0-9]+: 0f ae 20 xsave \[rax\]
+[ ]*[a-f0-9]+: 41 0f ae 20 xsave \[r8\]
+[ ]*[a-f0-9]+: 41 0f ae 24 00 xsave \[r8\+rax\*1\]
+[ ]*[a-f0-9]+: 42 0f ae 24 00 xsave \[rax\+r8\*1\]
+[ ]*[a-f0-9]+: 43 0f ae 24 38 xsave \[r8\+r15\*1\]
+[ ]*[a-f0-9]+: 48 0f ae 20 xsave64 \[rax\]
+[ ]*[a-f0-9]+: 49 0f ae 20 xsave64 \[r8\]
+[ ]*[a-f0-9]+: 49 0f ae 24 00 xsave64 \[r8\+rax\*1\]
+[ ]*[a-f0-9]+: 4a 0f ae 24 00 xsave64 \[rax\+r8\*1\]
+[ ]*[a-f0-9]+: 0f ae 28 xrstor \[rax\]
+[ ]*[a-f0-9]+: 41 0f ae 28 xrstor \[r8\]
+[ ]*[a-f0-9]+: 41 0f ae 2c 00 xrstor \[r8\+rax\*1\]
+[ ]*[a-f0-9]+: 42 0f ae 2c 00 xrstor \[rax\+r8\*1\]
+[ ]*[a-f0-9]+: 43 0f ae 2c 38 xrstor \[r8\+r15\*1\]
+[ ]*[a-f0-9]+: 48 0f ae 28 xrstor64 \[rax\]
+[ ]*[a-f0-9]+: 49 0f ae 28 xrstor64 \[r8\]
+[ ]*[a-f0-9]+: 49 0f ae 2c 00 xrstor64 \[r8\+rax\*1\]
+[ ]*[a-f0-9]+: 4a 0f ae 2c 00 xrstor64 \[rax\+r8\*1\]
+[ ]*[a-f0-9]+: 4b 0f ae 2c 38 xrstor64 \[r8\+r15\*1\]
+[ ]*[a-f0-9]+: 0f ae 20 xsave \[rax\]
+[ ]*[a-f0-9]+: 41 0f ae 20 xsave \[r8\]
+[ ]*[a-f0-9]+: 41 0f ae 24 00 xsave \[r8\+rax\*1\]
+[ ]*[a-f0-9]+: 42 0f ae 24 00 xsave \[rax\+r8\*1\]
+[ ]*[a-f0-9]+: 43 0f ae 24 38 xsave \[r8\+r15\*1\]
+[ ]*[a-f0-9]+: 48 0f ae 20 xsave64 \[rax\]
+[ ]*[a-f0-9]+: 49 0f ae 20 xsave64 \[r8\]
+[ ]*[a-f0-9]+: 49 0f ae 24 00 xsave64 \[r8\+rax\*1\]
+[ ]*[a-f0-9]+: 4a 0f ae 24 00 xsave64 \[rax\+r8\*1\]
+[ ]*[a-f0-9]+: 0f ae 28 xrstor \[rax\]
+[ ]*[a-f0-9]+: 41 0f ae 28 xrstor \[r8\]
+[ ]*[a-f0-9]+: 41 0f ae 2c 00 xrstor \[r8\+rax\*1\]
+[ ]*[a-f0-9]+: 42 0f ae 2c 00 xrstor \[rax\+r8\*1\]
+[ ]*[a-f0-9]+: 43 0f ae 2c 38 xrstor \[r8\+r15\*1\]
+[ ]*[a-f0-9]+: 48 0f ae 28 xrstor64 \[rax\]
+[ ]*[a-f0-9]+: 49 0f ae 28 xrstor64 \[r8\]
+[ ]*[a-f0-9]+: 49 0f ae 2c 00 xrstor64 \[r8\+rax\*1\]
+[ ]*[a-f0-9]+: 4a 0f ae 2c 00 xrstor64 \[rax\+r8\*1\]
+[ ]*[a-f0-9]+: 4b 0f ae 2c 38 xrstor64 \[r8\+r15\*1\]
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-xsave.d b/gas/testsuite/gas/i386/x86-64-xsave.d
index cf07cda..05114fb 100644
--- a/gas/testsuite/gas/i386/x86-64-xsave.d
+++ b/gas/testsuite/gas/i386/x86-64-xsave.d
@@ -6,10 +6,44 @@
Disassembly of section .text:
0+ <_start>:
-[ ]*[a-f0-9]+: 41 0f ae 29 xrstor \(%r9\)
-[ ]*[a-f0-9]+: 41 0f ae 21 xsave \(%r9\)
[ ]*[a-f0-9]+: 0f 01 d0 xgetbv
[ ]*[a-f0-9]+: 0f 01 d1 xsetbv
-[ ]*[a-f0-9]+: 0f ae 29 xrstor \(%rcx\)
-[ ]*[a-f0-9]+: 0f ae 21 xsave \(%rcx\)
+[ ]*[a-f0-9]+: 0f ae 20 xsave \(%rax\)
+[ ]*[a-f0-9]+: 41 0f ae 20 xsave \(%r8\)
+[ ]*[a-f0-9]+: 41 0f ae 24 00 xsave \(%r8,%rax,1\)
+[ ]*[a-f0-9]+: 42 0f ae 24 00 xsave \(%rax,%r8,1\)
+[ ]*[a-f0-9]+: 43 0f ae 24 38 xsave \(%r8,%r15,1\)
+[ ]*[a-f0-9]+: 48 0f ae 20 xsave64 \(%rax\)
+[ ]*[a-f0-9]+: 49 0f ae 20 xsave64 \(%r8\)
+[ ]*[a-f0-9]+: 49 0f ae 24 00 xsave64 \(%r8,%rax,1\)
+[ ]*[a-f0-9]+: 4a 0f ae 24 00 xsave64 \(%rax,%r8,1\)
+[ ]*[a-f0-9]+: 0f ae 28 xrstor \(%rax\)
+[ ]*[a-f0-9]+: 41 0f ae 28 xrstor \(%r8\)
+[ ]*[a-f0-9]+: 41 0f ae 2c 00 xrstor \(%r8,%rax,1\)
+[ ]*[a-f0-9]+: 42 0f ae 2c 00 xrstor \(%rax,%r8,1\)
+[ ]*[a-f0-9]+: 43 0f ae 2c 38 xrstor \(%r8,%r15,1\)
+[ ]*[a-f0-9]+: 48 0f ae 28 xrstor64 \(%rax\)
+[ ]*[a-f0-9]+: 49 0f ae 28 xrstor64 \(%r8\)
+[ ]*[a-f0-9]+: 49 0f ae 2c 00 xrstor64 \(%r8,%rax,1\)
+[ ]*[a-f0-9]+: 4a 0f ae 2c 00 xrstor64 \(%rax,%r8,1\)
+[ ]*[a-f0-9]+: 4b 0f ae 2c 38 xrstor64 \(%r8,%r15,1\)
+[ ]*[a-f0-9]+: 0f ae 20 xsave \(%rax\)
+[ ]*[a-f0-9]+: 41 0f ae 20 xsave \(%r8\)
+[ ]*[a-f0-9]+: 41 0f ae 24 00 xsave \(%r8,%rax,1\)
+[ ]*[a-f0-9]+: 42 0f ae 24 00 xsave \(%rax,%r8,1\)
+[ ]*[a-f0-9]+: 43 0f ae 24 38 xsave \(%r8,%r15,1\)
+[ ]*[a-f0-9]+: 48 0f ae 20 xsave64 \(%rax\)
+[ ]*[a-f0-9]+: 49 0f ae 20 xsave64 \(%r8\)
+[ ]*[a-f0-9]+: 49 0f ae 24 00 xsave64 \(%r8,%rax,1\)
+[ ]*[a-f0-9]+: 4a 0f ae 24 00 xsave64 \(%rax,%r8,1\)
+[ ]*[a-f0-9]+: 0f ae 28 xrstor \(%rax\)
+[ ]*[a-f0-9]+: 41 0f ae 28 xrstor \(%r8\)
+[ ]*[a-f0-9]+: 41 0f ae 2c 00 xrstor \(%r8,%rax,1\)
+[ ]*[a-f0-9]+: 42 0f ae 2c 00 xrstor \(%rax,%r8,1\)
+[ ]*[a-f0-9]+: 43 0f ae 2c 38 xrstor \(%r8,%r15,1\)
+[ ]*[a-f0-9]+: 48 0f ae 28 xrstor64 \(%rax\)
+[ ]*[a-f0-9]+: 49 0f ae 28 xrstor64 \(%r8\)
+[ ]*[a-f0-9]+: 49 0f ae 2c 00 xrstor64 \(%r8,%rax,1\)
+[ ]*[a-f0-9]+: 4a 0f ae 2c 00 xrstor64 \(%rax,%r8,1\)
+[ ]*[a-f0-9]+: 4b 0f ae 2c 38 xrstor64 \(%r8,%r15,1\)
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-xsave.s b/gas/testsuite/gas/i386/x86-64-xsave.s
index 076706f..b32dc6e 100644
--- a/gas/testsuite/gas/i386/x86-64-xsave.s
+++ b/gas/testsuite/gas/i386/x86-64-xsave.s
@@ -1,11 +1,46 @@
# Check 64bit xsave/xrstor
.text
_start:
- xrstor (%r9)
- xsave (%r9)
xgetbv
xsetbv
+ xsave (%rax)
+ xsave (%r8)
+ xsave (%r8, %rax)
+ xsave (%rax, %r8)
+ xsave (%r8, %r15)
+ xsave64 (%rax)
+ xsave64 (%r8)
+ xsave64 (%r8, %rax)
+ xsave64 (%rax, %r8)
+ xrstor (%rax)
+ xrstor (%r8)
+ xrstor (%r8, %rax)
+ xrstor (%rax, %r8)
+ xrstor (%r8, %r15)
+ xrstor64 (%rax)
+ xrstor64 (%r8)
+ xrstor64 (%r8, %rax)
+ xrstor64 (%rax, %r8)
+ xrstor64 (%r8, %r15)
+
.intel_syntax noprefix
- xrstor [rcx]
- xsave [rcx]
+ xsave [rax]
+ xsave [r8]
+ xsave [r8+rax*1]
+ xsave [rax+r8*1]
+ xsave [r8+r15*1]
+ xsave64 [rax]
+ xsave64 [r8]
+ xsave64 [r8+rax*1]
+ xsave64 [rax+r8*1]
+ xrstor [rax]
+ xrstor [r8]
+ xrstor [r8+rax*1]
+ xrstor [rax+r8*1]
+ xrstor [r8+r15*1]
+ xrstor64 [rax]
+ xrstor64 [r8]
+ xrstor64 [r8+rax*1]
+ xrstor64 [rax+r8*1]
+ xrstor64 [r8+r15*1]