From e2e018c340310c0cd13f72d3dc8f6465936c5443 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Wed, 15 Jul 2020 08:54:40 +0200 Subject: [PATCH] x86-64: adjust stack insn test case 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/ChangeLog | 8 ++++++++ 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 | 4 ++-- 5 files changed, 25 insertions(+), 17 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index e710045cfe1..76e17516cac 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,11 @@ +2020-07-15 Jan Beulich + + * 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. + 2020-07-15 Jan Beulich * testsuite/gas/i386/disassem.d, diff --git a/gas/testsuite/gas/i386/x86-64-stack-intel.d b/gas/testsuite/gas/i386/x86-64-stack-intel.d index b392579ded8..5afada19dd7 100644 --- 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 diff --git a/gas/testsuite/gas/i386/x86-64-stack-suffix.d b/gas/testsuite/gas/i386/x86-64-stack-suffix.d index 7c52e10cbbc..0c3a966bee0 100644 --- 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 diff --git a/gas/testsuite/gas/i386/x86-64-stack.d b/gas/testsuite/gas/i386/x86-64-stack.d index 34312cd5576..c77b344928a 100644 --- 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 diff --git a/gas/testsuite/gas/i386/x86-64-stack.s b/gas/testsuite/gas/i386/x86-64-stack.s index 0b8707e3043..0aa2ce9232d 100644 --- 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 -- 2.30.2