From 3e645041a7fc2d3ea14942f66398a1e761d63aaa Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 3 Aug 2012 21:45:16 +0000 Subject: [PATCH] gas/testsuite/ * gas/i386/x86-64-stack.s (try): Also try just rex.W (0x48) prefix. * gas/testsuite/gas/i386/ilp32/x86-64-stack-intel.d: Updated. * gas/testsuite/gas/i386/ilp32/x86-64-stack-suffix.d: Updated. * gas/testsuite/gas/i386/ilp32/x86-64-stack.d: Updated. * gas/testsuite/gas/i386/x86-64-stack-intel.d: Updated. * gas/testsuite/gas/i386/x86-64-stack-suffix.d: Updated. * gas/testsuite/gas/i386/x86-64-stack.d: Updated. --- gas/testsuite/ChangeLog | 10 ++++++++++ gas/testsuite/gas/i386/ilp32/x86-64-stack-intel.d | 10 ++++++++++ gas/testsuite/gas/i386/ilp32/x86-64-stack-suffix.d | 10 ++++++++++ gas/testsuite/gas/i386/ilp32/x86-64-stack.d | 10 ++++++++++ gas/testsuite/gas/i386/x86-64-stack-intel.d | 10 ++++++++++ gas/testsuite/gas/i386/x86-64-stack-suffix.d | 10 ++++++++++ gas/testsuite/gas/i386/x86-64-stack.d | 10 ++++++++++ gas/testsuite/gas/i386/x86-64-stack.s | 1 + 8 files changed, 71 insertions(+) diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index b9635ac00f8..61ef22a771d 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2012-08-03 Roland McGrath + + * gas/i386/x86-64-stack.s (try): Also try just rex.W (0x48) prefix. + * gas/testsuite/gas/i386/ilp32/x86-64-stack-intel.d: Updated. + * gas/testsuite/gas/i386/ilp32/x86-64-stack-suffix.d: Updated. + * gas/testsuite/gas/i386/ilp32/x86-64-stack.d: Updated. + * gas/testsuite/gas/i386/x86-64-stack-intel.d: Updated. + * gas/testsuite/gas/i386/x86-64-stack-suffix.d: Updated. + * gas/testsuite/gas/i386/x86-64-stack.d: Updated. + 2012-08-02 H.J. Lu PR binutils/14420 diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-stack-intel.d b/gas/testsuite/gas/i386/ilp32/x86-64-stack-intel.d index 59b4ced34c3..7092a42a251 100644 --- a/gas/testsuite/gas/i386/ilp32/x86-64-stack-intel.d +++ b/gas/testsuite/gas/i386/ilp32/x86-64-stack-intel.d @@ -9,32 +9,42 @@ Disassembly of section .text: 0+ <_start>: [ ]*[a-f0-9]+: 50 push rax [ ]*[a-f0-9]+: 66 50 push ax +[ ]*[a-f0-9]+: 48 50 rex.W push rax [ ]*[a-f0-9]+: 66 48 50 data32 push rax [ ]*[a-f0-9]+: 58 pop rax [ ]*[a-f0-9]+: 66 58 pop ax +[ ]*[a-f0-9]+: 48 58 rex.W pop rax [ ]*[a-f0-9]+: 66 48 58 data32 pop rax [ ]*[a-f0-9]+: 8f c0 pop rax [ ]*[a-f0-9]+: 66 8f c0 pop ax +[ ]*[a-f0-9]+: 48 8f c0 rex.W pop rax [ ]*[a-f0-9]+: 66 48 8f c0 data32 pop rax [ ]*[a-f0-9]+: 8f 00 pop QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 8f 00 pop WORD PTR \[rax\] +[ ]*[a-f0-9]+: 48 8f 00 rex.W pop QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 48 8f 00 data32 pop QWORD PTR \[rax\] [ ]*[a-f0-9]+: ff d0 call rax [ ]*[a-f0-9]+: 66 ff d0 call ax +[ ]*[a-f0-9]+: 48 ff d0 rex.W call rax [ ]*[a-f0-9]+: 66 48 ff d0 data32 call rax [ ]*[a-f0-9]+: ff 10 call QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 ff 10 call WORD PTR \[rax\] +[ ]*[a-f0-9]+: 48 ff 10 rex.W call QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 48 ff 10 data32 call QWORD PTR \[rax\] [ ]*[a-f0-9]+: ff e0 jmp rax [ ]*[a-f0-9]+: 66 ff e0 jmp ax +[ ]*[a-f0-9]+: 48 ff e0 rex.W jmp rax [ ]*[a-f0-9]+: 66 48 ff e0 data32 jmp rax [ ]*[a-f0-9]+: ff 20 jmp QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 ff 20 jmp WORD PTR \[rax\] +[ ]*[a-f0-9]+: 48 ff 20 rex.W jmp QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 48 ff 20 data32 jmp QWORD PTR \[rax\] [ ]*[a-f0-9]+: ff f0 push rax [ ]*[a-f0-9]+: 66 ff f0 push ax +[ ]*[a-f0-9]+: 48 ff f0 rex.W push rax [ ]*[a-f0-9]+: 66 48 ff f0 data32 push rax [ ]*[a-f0-9]+: ff 30 push QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 ff 30 push WORD PTR \[rax\] +[ ]*[a-f0-9]+: 48 ff 30 rex.W push QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 48 ff 30 data32 push QWORD PTR \[rax\] #pass diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-stack-suffix.d b/gas/testsuite/gas/i386/ilp32/x86-64-stack-suffix.d index 1d4db2d5756..45101dd3d48 100644 --- a/gas/testsuite/gas/i386/ilp32/x86-64-stack-suffix.d +++ b/gas/testsuite/gas/i386/ilp32/x86-64-stack-suffix.d @@ -9,32 +9,42 @@ Disassembly of section .text: 0+ <_start>: [ ]*[a-f0-9]+: 50 pushq %rax [ ]*[a-f0-9]+: 66 50 pushw %ax +[ ]*[a-f0-9]+: 48 50 rex.W pushq %rax [ ]*[a-f0-9]+: 66 48 50 data32 pushq %rax [ ]*[a-f0-9]+: 58 popq %rax [ ]*[a-f0-9]+: 66 58 popw %ax +[ ]*[a-f0-9]+: 48 58 rex.W popq %rax [ ]*[a-f0-9]+: 66 48 58 data32 popq %rax [ ]*[a-f0-9]+: 8f c0 popq %rax [ ]*[a-f0-9]+: 66 8f c0 popw %ax +[ ]*[a-f0-9]+: 48 8f c0 rex.W popq %rax [ ]*[a-f0-9]+: 66 48 8f c0 data32 popq %rax [ ]*[a-f0-9]+: 8f 00 popq \(%rax\) [ ]*[a-f0-9]+: 66 8f 00 popw \(%rax\) +[ ]*[a-f0-9]+: 48 8f 00 rex.W popq \(%rax\) [ ]*[a-f0-9]+: 66 48 8f 00 data32 popq \(%rax\) [ ]*[a-f0-9]+: ff d0 callq \*%rax [ ]*[a-f0-9]+: 66 ff d0 callw \*%ax +[ ]*[a-f0-9]+: 48 ff d0 rex.W callq \*%rax [ ]*[a-f0-9]+: 66 48 ff d0 data32 callq \*%rax [ ]*[a-f0-9]+: ff 10 callq \*\(%rax\) [ ]*[a-f0-9]+: 66 ff 10 callw \*\(%rax\) +[ ]*[a-f0-9]+: 48 ff 10 rex.W callq \*\(%rax\) [ ]*[a-f0-9]+: 66 48 ff 10 data32 callq \*\(%rax\) [ ]*[a-f0-9]+: ff e0 jmpq \*%rax [ ]*[a-f0-9]+: 66 ff e0 jmpw \*%ax +[ ]*[a-f0-9]+: 48 ff e0 rex.W jmpq \*%rax [ ]*[a-f0-9]+: 66 48 ff e0 data32 jmpq \*%rax [ ]*[a-f0-9]+: ff 20 jmpq \*\(%rax\) [ ]*[a-f0-9]+: 66 ff 20 jmpw \*\(%rax\) +[ ]*[a-f0-9]+: 48 ff 20 rex.W jmpq \*\(%rax\) [ ]*[a-f0-9]+: 66 48 ff 20 data32 jmpq \*\(%rax\) [ ]*[a-f0-9]+: ff f0 pushq %rax [ ]*[a-f0-9]+: 66 ff f0 pushw %ax +[ ]*[a-f0-9]+: 48 ff f0 rex.W pushq %rax [ ]*[a-f0-9]+: 66 48 ff f0 data32 pushq %rax [ ]*[a-f0-9]+: ff 30 pushq \(%rax\) [ ]*[a-f0-9]+: 66 ff 30 pushw \(%rax\) +[ ]*[a-f0-9]+: 48 ff 30 rex.W pushq \(%rax\) [ ]*[a-f0-9]+: 66 48 ff 30 data32 pushq \(%rax\) #pass diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-stack.d b/gas/testsuite/gas/i386/ilp32/x86-64-stack.d index 608baba3be5..4976597c295 100644 --- a/gas/testsuite/gas/i386/ilp32/x86-64-stack.d +++ b/gas/testsuite/gas/i386/ilp32/x86-64-stack.d @@ -9,32 +9,42 @@ Disassembly of section .text: 0+ <_start>: [ ]*[a-f0-9]+: 50 push %rax [ ]*[a-f0-9]+: 66 50 push %ax +[ ]*[a-f0-9]+: 48 50 rex.W push %rax [ ]*[a-f0-9]+: 66 48 50 data32 push %rax [ ]*[a-f0-9]+: 58 pop %rax [ ]*[a-f0-9]+: 66 58 pop %ax +[ ]*[a-f0-9]+: 48 58 rex.W pop %rax [ ]*[a-f0-9]+: 66 48 58 data32 pop %rax [ ]*[a-f0-9]+: 8f c0 pop %rax [ ]*[a-f0-9]+: 66 8f c0 pop %ax +[ ]*[a-f0-9]+: 48 8f c0 rex.W pop %rax [ ]*[a-f0-9]+: 66 48 8f c0 data32 pop %rax [ ]*[a-f0-9]+: 8f 00 popq \(%rax\) [ ]*[a-f0-9]+: 66 8f 00 popw \(%rax\) +[ ]*[a-f0-9]+: 48 8f 00 rex.W popq \(%rax\) [ ]*[a-f0-9]+: 66 48 8f 00 data32 popq \(%rax\) [ ]*[a-f0-9]+: ff d0 callq \*%rax [ ]*[a-f0-9]+: 66 ff d0 callw \*%ax +[ ]*[a-f0-9]+: 48 ff d0 rex.W callq \*%rax [ ]*[a-f0-9]+: 66 48 ff d0 data32 callq \*%rax [ ]*[a-f0-9]+: ff 10 callq \*\(%rax\) [ ]*[a-f0-9]+: 66 ff 10 callw \*\(%rax\) +[ ]*[a-f0-9]+: 48 ff 10 rex.W callq \*\(%rax\) [ ]*[a-f0-9]+: 66 48 ff 10 data32 callq \*\(%rax\) [ ]*[a-f0-9]+: ff e0 jmpq \*%rax [ ]*[a-f0-9]+: 66 ff e0 jmpw \*%ax +[ ]*[a-f0-9]+: 48 ff e0 rex.W jmpq \*%rax [ ]*[a-f0-9]+: 66 48 ff e0 data32 jmpq \*%rax [ ]*[a-f0-9]+: ff 20 jmpq \*\(%rax\) [ ]*[a-f0-9]+: 66 ff 20 jmpw \*\(%rax\) +[ ]*[a-f0-9]+: 48 ff 20 rex.W jmpq \*\(%rax\) [ ]*[a-f0-9]+: 66 48 ff 20 data32 jmpq \*\(%rax\) [ ]*[a-f0-9]+: ff f0 push %rax [ ]*[a-f0-9]+: 66 ff f0 push %ax +[ ]*[a-f0-9]+: 48 ff f0 rex.W push %rax [ ]*[a-f0-9]+: 66 48 ff f0 data32 push %rax [ ]*[a-f0-9]+: ff 30 pushq \(%rax\) [ ]*[a-f0-9]+: 66 ff 30 pushw \(%rax\) +[ ]*[a-f0-9]+: 48 ff 30 rex.W pushq \(%rax\) [ ]*[a-f0-9]+: 66 48 ff 30 data32 pushq \(%rax\) #pass diff --git a/gas/testsuite/gas/i386/x86-64-stack-intel.d b/gas/testsuite/gas/i386/x86-64-stack-intel.d index a09be6cb87c..4c54af77597 100644 --- a/gas/testsuite/gas/i386/x86-64-stack-intel.d +++ b/gas/testsuite/gas/i386/x86-64-stack-intel.d @@ -9,32 +9,42 @@ Disassembly of section .text: 0+ <_start>: [ ]*[a-f0-9]+: 50 push rax [ ]*[a-f0-9]+: 66 50 push ax +[ ]*[a-f0-9]+: 48 50 rex.W push rax [ ]*[a-f0-9]+: 66 48 50 data32 push rax [ ]*[a-f0-9]+: 58 pop rax [ ]*[a-f0-9]+: 66 58 pop ax +[ ]*[a-f0-9]+: 48 58 rex.W pop rax [ ]*[a-f0-9]+: 66 48 58 data32 pop rax [ ]*[a-f0-9]+: 8f c0 pop rax [ ]*[a-f0-9]+: 66 8f c0 pop ax +[ ]*[a-f0-9]+: 48 8f c0 rex.W pop rax [ ]*[a-f0-9]+: 66 48 8f c0 data32 pop rax [ ]*[a-f0-9]+: 8f 00 pop QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 8f 00 pop WORD PTR \[rax\] +[ ]*[a-f0-9]+: 48 8f 00 rex.W pop QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 48 8f 00 data32 pop QWORD PTR \[rax\] [ ]*[a-f0-9]+: ff d0 call rax [ ]*[a-f0-9]+: 66 ff d0 call ax +[ ]*[a-f0-9]+: 48 ff d0 rex.W call rax [ ]*[a-f0-9]+: 66 48 ff d0 data32 call rax [ ]*[a-f0-9]+: ff 10 call QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 ff 10 call WORD PTR \[rax\] +[ ]*[a-f0-9]+: 48 ff 10 rex.W call QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 48 ff 10 data32 call QWORD PTR \[rax\] [ ]*[a-f0-9]+: ff e0 jmp rax [ ]*[a-f0-9]+: 66 ff e0 jmp ax +[ ]*[a-f0-9]+: 48 ff e0 rex.W jmp rax [ ]*[a-f0-9]+: 66 48 ff e0 data32 jmp rax [ ]*[a-f0-9]+: ff 20 jmp QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 ff 20 jmp WORD PTR \[rax\] +[ ]*[a-f0-9]+: 48 ff 20 rex.W jmp QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 48 ff 20 data32 jmp QWORD PTR \[rax\] [ ]*[a-f0-9]+: ff f0 push rax [ ]*[a-f0-9]+: 66 ff f0 push ax +[ ]*[a-f0-9]+: 48 ff f0 rex.W push rax [ ]*[a-f0-9]+: 66 48 ff f0 data32 push rax [ ]*[a-f0-9]+: ff 30 push QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 ff 30 push WORD PTR \[rax\] +[ ]*[a-f0-9]+: 48 ff 30 rex.W push QWORD PTR \[rax\] [ ]*[a-f0-9]+: 66 48 ff 30 data32 push QWORD PTR \[rax\] #pass diff --git a/gas/testsuite/gas/i386/x86-64-stack-suffix.d b/gas/testsuite/gas/i386/x86-64-stack-suffix.d index ce1386a1e45..07bf79b777b 100644 --- a/gas/testsuite/gas/i386/x86-64-stack-suffix.d +++ b/gas/testsuite/gas/i386/x86-64-stack-suffix.d @@ -9,32 +9,42 @@ Disassembly of section .text: 0+ <_start>: [ ]*[a-f0-9]+: 50 pushq %rax [ ]*[a-f0-9]+: 66 50 pushw %ax +[ ]*[a-f0-9]+: 48 50 rex.W pushq %rax [ ]*[a-f0-9]+: 66 48 50 data32 pushq %rax [ ]*[a-f0-9]+: 58 popq %rax [ ]*[a-f0-9]+: 66 58 popw %ax +[ ]*[a-f0-9]+: 48 58 rex.W popq %rax [ ]*[a-f0-9]+: 66 48 58 data32 popq %rax [ ]*[a-f0-9]+: 8f c0 popq %rax [ ]*[a-f0-9]+: 66 8f c0 popw %ax +[ ]*[a-f0-9]+: 48 8f c0 rex.W popq %rax [ ]*[a-f0-9]+: 66 48 8f c0 data32 popq %rax [ ]*[a-f0-9]+: 8f 00 popq \(%rax\) [ ]*[a-f0-9]+: 66 8f 00 popw \(%rax\) +[ ]*[a-f0-9]+: 48 8f 00 rex.W popq \(%rax\) [ ]*[a-f0-9]+: 66 48 8f 00 data32 popq \(%rax\) [ ]*[a-f0-9]+: ff d0 callq \*%rax [ ]*[a-f0-9]+: 66 ff d0 callw \*%ax +[ ]*[a-f0-9]+: 48 ff d0 rex.W callq \*%rax [ ]*[a-f0-9]+: 66 48 ff d0 data32 callq \*%rax [ ]*[a-f0-9]+: ff 10 callq \*\(%rax\) [ ]*[a-f0-9]+: 66 ff 10 callw \*\(%rax\) +[ ]*[a-f0-9]+: 48 ff 10 rex.W callq \*\(%rax\) [ ]*[a-f0-9]+: 66 48 ff 10 data32 callq \*\(%rax\) [ ]*[a-f0-9]+: ff e0 jmpq \*%rax [ ]*[a-f0-9]+: 66 ff e0 jmpw \*%ax +[ ]*[a-f0-9]+: 48 ff e0 rex.W jmpq \*%rax [ ]*[a-f0-9]+: 66 48 ff e0 data32 jmpq \*%rax [ ]*[a-f0-9]+: ff 20 jmpq \*\(%rax\) [ ]*[a-f0-9]+: 66 ff 20 jmpw \*\(%rax\) +[ ]*[a-f0-9]+: 48 ff 20 rex.W jmpq \*\(%rax\) [ ]*[a-f0-9]+: 66 48 ff 20 data32 jmpq \*\(%rax\) [ ]*[a-f0-9]+: ff f0 pushq %rax [ ]*[a-f0-9]+: 66 ff f0 pushw %ax +[ ]*[a-f0-9]+: 48 ff f0 rex.W pushq %rax [ ]*[a-f0-9]+: 66 48 ff f0 data32 pushq %rax [ ]*[a-f0-9]+: ff 30 pushq \(%rax\) [ ]*[a-f0-9]+: 66 ff 30 pushw \(%rax\) +[ ]*[a-f0-9]+: 48 ff 30 rex.W pushq \(%rax\) [ ]*[a-f0-9]+: 66 48 ff 30 data32 pushq \(%rax\) #pass diff --git a/gas/testsuite/gas/i386/x86-64-stack.d b/gas/testsuite/gas/i386/x86-64-stack.d index 2d806f479c6..0ab339d9edc 100644 --- a/gas/testsuite/gas/i386/x86-64-stack.d +++ b/gas/testsuite/gas/i386/x86-64-stack.d @@ -8,32 +8,42 @@ Disassembly of section .text: 0+ <_start>: [ ]*[a-f0-9]+: 50 push %rax [ ]*[a-f0-9]+: 66 50 push %ax +[ ]*[a-f0-9]+: 48 50 rex.W push %rax [ ]*[a-f0-9]+: 66 48 50 data32 push %rax [ ]*[a-f0-9]+: 58 pop %rax [ ]*[a-f0-9]+: 66 58 pop %ax +[ ]*[a-f0-9]+: 48 58 rex.W pop %rax [ ]*[a-f0-9]+: 66 48 58 data32 pop %rax [ ]*[a-f0-9]+: 8f c0 pop %rax [ ]*[a-f0-9]+: 66 8f c0 pop %ax +[ ]*[a-f0-9]+: 48 8f c0 rex.W pop %rax [ ]*[a-f0-9]+: 66 48 8f c0 data32 pop %rax [ ]*[a-f0-9]+: 8f 00 popq \(%rax\) [ ]*[a-f0-9]+: 66 8f 00 popw \(%rax\) +[ ]*[a-f0-9]+: 48 8f 00 rex.W popq \(%rax\) [ ]*[a-f0-9]+: 66 48 8f 00 data32 popq \(%rax\) [ ]*[a-f0-9]+: ff d0 callq \*%rax [ ]*[a-f0-9]+: 66 ff d0 callw \*%ax +[ ]*[a-f0-9]+: 48 ff d0 rex.W callq \*%rax [ ]*[a-f0-9]+: 66 48 ff d0 data32 callq \*%rax [ ]*[a-f0-9]+: ff 10 callq \*\(%rax\) [ ]*[a-f0-9]+: 66 ff 10 callw \*\(%rax\) +[ ]*[a-f0-9]+: 48 ff 10 rex.W callq \*\(%rax\) [ ]*[a-f0-9]+: 66 48 ff 10 data32 callq \*\(%rax\) [ ]*[a-f0-9]+: ff e0 jmpq \*%rax [ ]*[a-f0-9]+: 66 ff e0 jmpw \*%ax +[ ]*[a-f0-9]+: 48 ff e0 rex.W jmpq \*%rax [ ]*[a-f0-9]+: 66 48 ff e0 data32 jmpq \*%rax [ ]*[a-f0-9]+: ff 20 jmpq \*\(%rax\) [ ]*[a-f0-9]+: 66 ff 20 jmpw \*\(%rax\) +[ ]*[a-f0-9]+: 48 ff 20 rex.W jmpq \*\(%rax\) [ ]*[a-f0-9]+: 66 48 ff 20 data32 jmpq \*\(%rax\) [ ]*[a-f0-9]+: ff f0 push %rax [ ]*[a-f0-9]+: 66 ff f0 push %ax +[ ]*[a-f0-9]+: 48 ff f0 rex.W push %rax [ ]*[a-f0-9]+: 66 48 ff f0 data32 push %rax [ ]*[a-f0-9]+: ff 30 pushq \(%rax\) [ ]*[a-f0-9]+: 66 ff 30 pushw \(%rax\) +[ ]*[a-f0-9]+: 48 ff 30 rex.W pushq \(%rax\) [ ]*[a-f0-9]+: 66 48 ff 30 data32 pushq \(%rax\) #pass diff --git a/gas/testsuite/gas/i386/x86-64-stack.s b/gas/testsuite/gas/i386/x86-64-stack.s index e0fc046bbc1..d114887d659 100644 --- a/gas/testsuite/gas/i386/x86-64-stack.s +++ b/gas/testsuite/gas/i386/x86-64-stack.s @@ -1,6 +1,7 @@ .macro try bytes:vararg .byte \bytes .byte 0x66, \bytes + .byte 0x48, \bytes .byte 0x66, 0x48, \bytes .endm -- 2.30.2