[PATCH 2/5] x86-64: adjust stack insn test case

Jan Beulich jbeulich@suse.com
Tue Jul 14 10:12:56 GMT 2020


The value chosen for the 16-/32-bit immediate cases didn't work well
with the subsequent insn's REX prefix - we ought to pick a value the
upper two bytes of which evaluate to a 2-byte insn. Bump the values
accordingly, allowing the subsequent insn to actually have the intended
REX.W.

gas/
2020-07-XX  Jan Beulich  <jbeulich@suse.com>

	* testsuite/gas/i386/x86-64-stack.s: Adjust 32-bit push
	immediate.
	* testsuite/gas/i386/x86-64-stack-intel.d,
	testsuite/gas/i386/x86-64-stack-suffix.d,
	testsuite/gas/i386/x86-64-stack.d: Adjust expectations.

--- a/gas/testsuite/gas/i386/x86-64-stack-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-stack-intel.d
@@ -51,11 +51,11 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	66 6a ff             	pushw  0xffff
 [ 	]*[a-f0-9]+:	48 6a ff             	rex.W push 0xffffffffffffffff
 [ 	]*[a-f0-9]+:	66 48 6a ff          	data16 rex.W push 0xffffffffffffffff
-[ 	]*[a-f0-9]+:	68 01 02 03 04       	push   0x4030201
-[ 	]*[a-f0-9]+:	66 68 01 02          	pushw  0x201
-[ 	]*[a-f0-9]+:	03 04 48             	add    eax,DWORD PTR \[rax\+rcx\*2\]
-[ 	]*[a-f0-9]+:	68 01 02 03 04       	push   0x4030201
-[ 	]*[a-f0-9]+:	66 48 68 01 02 03 04 	data16 rex.W push 0x4030201
+[ 	]*[a-f0-9]+:	68 02 03 04 05       	push   0x5040302
+[ 	]*[a-f0-9]+:	66 68 02 03          	pushw  0x302
+[ 	]*[a-f0-9]+:	04 05                	add    al,0x5
+[ 	]*[a-f0-9]+:	48 68 02 03 04 05    	rex\.W push 0x5040302
+[ 	]*[a-f0-9]+:	66 48 68 02 03 04 05 	data16 rex\.W push 0x5040302
 [ 	]*[a-f0-9]+:	0f a8                	push   gs
 [ 	]*[a-f0-9]+:	66 0f a8             	pushw  gs
 [ 	]*[a-f0-9]+:	48 0f a8             	rex.W push gs
--- a/gas/testsuite/gas/i386/x86-64-stack-suffix.d
+++ b/gas/testsuite/gas/i386/x86-64-stack-suffix.d
@@ -51,11 +51,11 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	66 6a ff             	pushw  \$0xffff
 [ 	]*[a-f0-9]+:	48 6a ff             	rex.W pushq \$0xffffffffffffffff
 [ 	]*[a-f0-9]+:	66 48 6a ff          	data16 rex.W pushq \$0xffffffffffffffff
-[ 	]*[a-f0-9]+:	68 01 02 03 04       	pushq  \$0x4030201
-[ 	]*[a-f0-9]+:	66 68 01 02          	pushw  \$0x201
-[ 	]*[a-f0-9]+:	03 04 48             	addl   \(%rax,%rcx,2\),%eax
-[ 	]*[a-f0-9]+:	68 01 02 03 04       	pushq  \$0x4030201
-[ 	]*[a-f0-9]+:	66 48 68 01 02 03 04 	data16 rex.W pushq \$0x4030201
+[ 	]*[a-f0-9]+:	68 02 03 04 05       	pushq  \$0x5040302
+[ 	]*[a-f0-9]+:	66 68 02 03          	pushw  \$0x302
+[ 	]*[a-f0-9]+:	04 05                	addb   \$0x5,%al
+[ 	]*[a-f0-9]+:	48 68 02 03 04 05    	rex\.W pushq \$0x5040302
+[ 	]*[a-f0-9]+:	66 48 68 02 03 04 05 	data16 rex\.W pushq \$0x5040302
 [ 	]*[a-f0-9]+:	0f a8                	pushq  %gs
 [ 	]*[a-f0-9]+:	66 0f a8             	pushw  %gs
 [ 	]*[a-f0-9]+:	48 0f a8             	rex.W pushq %gs
--- a/gas/testsuite/gas/i386/x86-64-stack.d
+++ b/gas/testsuite/gas/i386/x86-64-stack.d
@@ -50,11 +50,11 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	66 6a ff             	pushw  \$0xffff
 [ 	]*[a-f0-9]+:	48 6a ff             	rex\.W push \$0xffffffffffffffff
 [ 	]*[a-f0-9]+:	66 48 6a ff          	data16 rex\.W push \$0xffffffffffffffff
-[ 	]*[a-f0-9]+:	68 01 02 03 04       	push   \$0x4030201
-[ 	]*[a-f0-9]+:	66 68 01 02          	pushw  \$0x201
-[ 	]*[a-f0-9]+:	03 04 48             	add    \(%rax,%rcx,2\),%eax
-[ 	]*[a-f0-9]+:	68 01 02 03 04       	push   \$0x4030201
-[ 	]*[a-f0-9]+:	66 48 68 01 02 03 04 	data16 rex\.W push \$0x4030201
+[ 	]*[a-f0-9]+:	68 02 03 04 05       	push   \$0x5040302
+[ 	]*[a-f0-9]+:	66 68 02 03          	pushw  \$0x302
+[ 	]*[a-f0-9]+:	04 05                	add    \$0x5,%al
+[ 	]*[a-f0-9]+:	48 68 02 03 04 05    	rex\.W push \$0x5040302
+[ 	]*[a-f0-9]+:	66 48 68 02 03 04 05 	data16 rex\.W push \$0x5040302
 [ 	]*[a-f0-9]+:	0f a8                	push   %gs
 [ 	]*[a-f0-9]+:	66 0f a8             	pushw  %gs
 [ 	]*[a-f0-9]+:	48 0f a8             	rex\.W push %gs
--- a/gas/testsuite/gas/i386/x86-64-stack.s
+++ b/gas/testsuite/gas/i386/x86-64-stack.s
@@ -26,8 +26,8 @@ _start:
 	# push with a 1-byte immediate
 	try	0x6a, 0xff
 
-	# push with a 4-byte immediate
-	try	0x68, 0x01, 0x02, 0x03, 0x04
+	# push with a 4-(or 2-)byte immediate
+	try	0x68, 0x02, 0x03, 0x04, 0x05
 
 	# push a segment register
 	try	0x0f, 0xa8



More information about the Binutils mailing list