This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC PATCH] Fix decoding of superfluous data32 prefix before superfluous rex.W prefix before push.


On Fri, Aug 3, 2012 at 11:54 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> Also the new testcases should be added to x86-64-stack.s, not a new file.

I started out with just covering the rex.W prefix without data32 for the
existing cases, as below.  I'm committing this now.

Thanks,
Roland

gas/testsuite/
2012-08-03  Roland McGrath  <mcgrathr@google.com>

	* 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.

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 59b4ced..7092a42 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 1d4db2d..45101dd 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 608baba..4976597 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 a09be6c..4c54af7 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 ce1386a..07bf79b 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 2d806f4..0ab339d 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 e0fc046..d114887 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]