x86: Add tests for -n option of x86 assembler

The -n command-line of x86 assembler disables optimization of alignment
directives, like ".balign 8, 0x90", with multi-byte nop instructions
such as leal 0(%esi),%esi.

	PR gas/22464
	* testsuite/gas/i386/align-1.s: New file.
	* testsuite/gas/i386/align-1a.d: Likewise.
	* testsuite/gas/i386/align-1b.d: Likewise.
	* testsuite/gas/i386/i386.exp: Run align-1a and align-1b.
This commit is contained in:
H.J. Lu 2017-11-21 16:44:29 -08:00
parent c757658ed6
commit 0ad71725d9
5 changed files with 58 additions and 0 deletions

View File

@ -1,3 +1,11 @@
2017-11-21 H.J. Lu <hongjiu.lu@intel.com>
PR gas/22464
* testsuite/gas/i386/align-1.s: New file.
* testsuite/gas/i386/align-1a.d: Likewise.
* testsuite/gas/i386/align-1b.d: Likewise.
* testsuite/gas/i386/i386.exp: Run align-1a and align-1b.
2017-11-21 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gas/arc/b.d : Update test.

View File

@ -0,0 +1,7 @@
.text
_start:
movl %edi, %eax
.balign 8, 0x90
movl $0, %edx
.balign 8, 0x90
addl %eax, %edx

View File

@ -0,0 +1,17 @@
#name: i386 balign
#source: align-1.s
#as: -mtune=generic32
#objdump: -dr
.*: +file format .*i386.*
Disassembly of section .text:
0+ <_start>:
[ ]*[a-f0-9]+: 89 f8 mov %edi,%eax
[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
[ ]*[a-f0-9]+: ba 00 00 00 00 mov \$0x0,%edx
[ ]*[a-f0-9]+: 8d 76 00 lea 0x0\(%esi\),%esi
[ ]*[a-f0-9]+: 01 c2 add %eax,%edx
#pass

View File

@ -0,0 +1,24 @@
#name: i386 balign (-n)
#source: align-1.s
#as: -mtune=generic32 -n
#objdump: -dr
.*: +file format .*i386.*
Disassembly of section .text:
0+ <_start>:
[ ]*[a-f0-9]+: 89 f8 mov %edi,%eax
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: ba 00 00 00 00 mov \$0x0,%edx
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 01 c2 add %eax,%edx
#pass

View File

@ -427,6 +427,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
run_dump_test "notrack"
run_dump_test "notrack-intel"
run_list_test "notrackbad" "-al"
run_dump_test "align-1a"
run_dump_test "align-1b"
# These tests require support for 8 and 16 bit relocs,
# so we only run them for ELF and COFF targets.