2005-12-14  Jan Beulich  <jbeulich@novell.com>

	* config/tc-i386.c (add_prefix): More fine-grained handling of
	REX prefixes. Or new prefix value into i.prefix instead of
	assigning.

gas/testsuite/
2005-12-14  Jan Beulich  <jbeulich@novell.com>

	* gas/i386/rex.[sd]: New.
	* gas/i386/i386.exp: Run new test.
This commit is contained in:
Jan Beulich
2005-12-14 08:57:06 +00:00
parent eda87aba05
commit b190548998
6 changed files with 108 additions and 43 deletions

View File

@ -1,3 +1,8 @@
2005-12-14 Jan Beulich <jbeulich@novell.com>
* gas/i386/rex.[sd]: New.
* gas/i386/i386.exp: Run new test.
2005-12-12 Nathan Sidwell <nathan@codesourcery.com>
* gas/mt: Renamed from ms1 dir. Update file names as needed.

View File

@ -133,6 +133,21 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
run_dump_test "immed64"
run_dump_test "x86-64-prescott"
if { ![istarget "*-*-aix*"]
&& ![istarget "*-*-beos*"]
&& ![istarget "*-*-*bsd*"]
&& ![istarget "*-*-chaos*"]
&& ![istarget "*-*-kaos*"]
&& ![istarget "*-*-lynx*"]
&& ![istarget "*-*-moss*"]
&& ![istarget "*-*-nto-qnx*"]
&& ![istarget "*-*-rtems*"]
&& ![istarget "*-*-sco*"]
&& ![istarget "*-*-solaris*"]
&& ![istarget "*-*-sysv*"] } then {
run_dump_test "rex"
}
# For ELF targets verify that @unwind works.
if { ([istarget "*-*-elf*"] || [istarget "*-*-linux*"]
|| [istarget "*-*-solaris2.*"])

View File

@ -0,0 +1,17 @@
#objdump: -dw
#name: x86-64 manual rex prefix use
.*: +file format elf64-x86-64
Disassembly of section .text:
0+ <_start>:
[ ]*[0-9a-f]+:[ ]+40 0f ae 00[ ]+rex fxsavel?[ ]+\(%rax\)
[ ]*[0-9a-f]+:[ ]+48 0f ae 00[ ]+(rex64 )?fxsaveq?[ ]+\(%rax\)
[ ]*[0-9a-f]+:[ ]+41 0f ae 00[ ]+fxsavel?[ ]+\(%r8\)
[ ]*[0-9a-f]+:[ ]+49 0f ae 00[ ]+(rex64Z? )?fxsaveq?[ ]+\(%r8\)
[ ]*[0-9a-f]+:[ ]+42 0f ae 04 05 00 00 00 00[ ]+fxsavel?[ ]+(0x0)?\(,%r8(,1)?\)
[ ]*[0-9a-f]+:[ ]+4a 0f ae 04 05 00 00 00 00[ ]+(rex64Y? )?fxsaveq?[ ]+(0x0)?\(,%r8(,1)?\)
[ ]*[0-9a-f]+:[ ]+43 0f ae 04 00[ ]+fxsavel?[ ]+\(%r8,%r8(,1)?\)
[ ]*[0-9a-f]+:[ ]+4b 0f ae 04 00[ ]+(rex64(YZ)? )?fxsaveq?[ ]+\(%r8,%r8(,1)?\)
#pass

View File

@ -0,0 +1,11 @@
.text
_start:
rex/fxsave (%rax)
rex64/fxsave (%rax)
rex/fxsave (%r8)
rex64/fxsave (%r8)
rex/fxsave (,%r8)
rex64/fxsave (,%r8)
rex/fxsave (%r8,%r8)
rex64/fxsave (%r8,%r8)