diff options
author | Jan Beulich <jbeulich@novell.com> | 2009-07-24 15:41:20 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2009-07-24 15:41:20 +0000 |
commit | 309d33736f82fece9dbeae7a4ba096cdc2d77753 (patch) | |
tree | af27f997a96225ed278b45e38156d83ae13fb2a6 /gas | |
parent | 20203fb9399bed63f555d79dcd8ad95a5bb0aed6 (diff) | |
download | gdb-309d33736f82fece9dbeae7a4ba096cdc2d77753.zip gdb-309d33736f82fece9dbeae7a4ba096cdc2d77753.tar.gz gdb-309d33736f82fece9dbeae7a4ba096cdc2d77753.tar.bz2 |
gas/
2009-07-24 Jan Beulich <jbeulich@novell.com>
* tc-i386.c (cpu_arch): Add .8087, .287, .387, .no87, .nommx,
.nosse, and .noavx.
(cpu_flags_and_not): New.
(set_cpu_arch): Check whether sub-architecture specified is a
feature disable.
(md_parse_option): Likewise.
(parse_real_register): Don't return floating point register
when x87 functionality is disabled.
(md_show_usage): Add new sub-options.
* doc/c-i386.texi: Update with new command line sub-options.
gas/testsuite/
2009-07-24 Jan Beulich <jbeulich@novell.com>
* gas/i386/8087.[ds]: New.
* gas/i386/287.[ds]: New.
* gas/i386/387.[ds]: New.
* gas/i386/no87.[ls]: New.
* gas/i386/no87-2.[ls]: New.
* gas/i386/i386.exp: Run new tests.
* gas/i386/att-regs.s: Also check FPU register access.
* gas/i386/intel-regs.s: Likewise.
* gas/i386/att-regs.d: Adjust expectations.
* gas/i386/intel-regs.d: Likewise.
opcodes/
2009-07-24 Jan Beulich <jbeulich@novell.com>
* i386-dis.c (fgrps): Correct annotation for feni/fdisi. Add
frstpm.
* i386-gen.c (cpu_flag_init): Add FP enabling flags where needed.
(cpu_flags): Add Cpu8087, Cpu287, Cpu387, Cpu687, and CpuFISTTP.
(set_bitfield): Expand CpuFP to Cpu8087|Cpu287|Cpu387.
* i386-opc.h (Cpu8087, Cpu287, Cpu387, Cpu687, CpuFISTTP):
Define.
(union i386_cpu_flags): Add cpu8087, cpu287, cpu387, cpu687,
and cpufisttp.
* i386-opc.tbl: Qualify floating point instructions by their
respective CpuXXX flag. Fix fucom{,p,pp}, fprem1, fsin, fcos,
and fsincos to be avilable only on 387. Fix fstsw ax to be
available only on 287+. Add f{,n}eni, f{,n}disi, f{,n}setpm,
and frstpm.
* i386-init.h, i386-tbl.h: Regenerate.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 13 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 60 | ||||
-rw-r--r-- | gas/doc/c-i386.texi | 9 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 13 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/287.d | 12 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/287.s | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/387.d | 17 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/387.s | 11 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/8087.d | 13 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/8087.s | 11 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/att-regs.d | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/att-regs.s | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/i386.exp | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intel-regs.d | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intel-regs.s | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/no87-2.l | 19 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/no87-2.s | 14 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/no87.l | 25 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/no87.s | 18 |
19 files changed, 254 insertions, 16 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 715c731..d798b0a 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,16 @@ +2009-07-24 Jan Beulich <jbeulich@novell.com> + + * tc-i386.c (cpu_arch): Add .8087, .287, .387, .no87, .nommx, + .nosse, and .noavx. + (cpu_flags_and_not): New. + (set_cpu_arch): Check whether sub-architecture specified is a + feature disable. + (md_parse_option): Likewise. + (parse_real_register): Don't return floating point register + when x87 functionality is disabled. + (md_show_usage): Add new sub-options. + * doc/c-i386.texi: Update with new command line sub-options. + 2009-07-24 Nick Clifton <nickc@redhat.com> PR 10437 diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 42a95ff..62486ec 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -591,8 +591,18 @@ static const arch_entry cpu_arch[] = CPU_K8_FLAGS }, { "amdfam10", PROCESSOR_AMDFAM10, CPU_AMDFAM10_FLAGS }, + { ".8087", PROCESSOR_UNKNOWN, + CPU_8087_FLAGS }, + { ".287", PROCESSOR_UNKNOWN, + CPU_287_FLAGS }, + { ".387", PROCESSOR_UNKNOWN, + CPU_387_FLAGS }, + { ".no87", PROCESSOR_UNKNOWN, + CPU_ANY87_FLAGS }, { ".mmx", PROCESSOR_UNKNOWN, CPU_MMX_FLAGS }, + { ".nommx", PROCESSOR_UNKNOWN, + CPU_3DNOWA_FLAGS }, { ".sse", PROCESSOR_UNKNOWN, CPU_SSE_FLAGS }, { ".sse2", PROCESSOR_UNKNOWN, @@ -607,8 +617,12 @@ static const arch_entry cpu_arch[] = CPU_SSE4_2_FLAGS }, { ".sse4", PROCESSOR_UNKNOWN, CPU_SSE4_2_FLAGS }, + { ".nosse", PROCESSOR_UNKNOWN, + CPU_ANY_SSE_FLAGS }, { ".avx", PROCESSOR_UNKNOWN, CPU_AVX_FLAGS }, + { ".noavx", PROCESSOR_UNKNOWN, + CPU_ANY_AVX_FLAGS }, { ".vmx", PROCESSOR_UNKNOWN, CPU_VMX_FLAGS }, { ".smx", PROCESSOR_UNKNOWN, @@ -1236,6 +1250,24 @@ cpu_flags_or (i386_cpu_flags x, i386_cpu_flags y) return x; } +static INLINE i386_cpu_flags +cpu_flags_and_not (i386_cpu_flags x, i386_cpu_flags y) +{ + switch (ARRAY_SIZE (x.array)) + { + case 3: + x.array [2] &= ~y.array [2]; + case 2: + x.array [1] &= ~y.array [1]; + case 1: + x.array [0] &= ~y.array [0]; + break; + default: + abort (); + } + return x; +} + #define CPU_FLAGS_ARCH_MATCH 0x1 #define CPU_FLAGS_64BIT_MATCH 0x2 #define CPU_FLAGS_AES_MATCH 0x4 @@ -1964,8 +1996,12 @@ set_cpu_arch (int dummy ATTRIBUTE_UNUSED) break; } - flags = cpu_flags_or (cpu_arch_flags, - cpu_arch[i].flags); + if (strncmp (string + 1, "no", 2)) + flags = cpu_flags_or (cpu_arch_flags, + cpu_arch[i].flags); + else + flags = cpu_flags_and_not (cpu_arch_flags, + cpu_arch[i].flags); if (!cpu_flags_equal (&flags, &cpu_arch_flags)) { if (cpu_sub_arch_name) @@ -7484,6 +7520,12 @@ parse_real_register (char *reg_string, char **end_op) && !cpu_arch_flags.bitfield.cpui386) return (const reg_entry *) NULL; + if (r->reg_type.bitfield.floatreg + && !cpu_arch_flags.bitfield.cpu8087 + && !cpu_arch_flags.bitfield.cpu287 + && !cpu_arch_flags.bitfield.cpu387) + return (const reg_entry *) NULL; + if (r->reg_type.bitfield.regmmx && !cpu_arch_flags.bitfield.cpummx) return (const reg_entry *) NULL; @@ -7759,8 +7801,13 @@ md_parse_option (int c, char *arg) { /* ISA entension. */ i386_cpu_flags flags; - flags = cpu_flags_or (cpu_arch_flags, - cpu_arch[i].flags); + + if (strncmp (arch, "no", 2)) + flags = cpu_flags_or (cpu_arch_flags, + cpu_arch[i].flags); + else + flags = cpu_flags_and_not (cpu_arch_flags, + cpu_arch[i].flags); if (!cpu_flags_equal (&flags, &cpu_arch_flags)) { if (cpu_sub_arch_name) @@ -7892,8 +7939,9 @@ md_show_usage (stream) core, core2, corei7, k6, k6_2, athlon, k8, amdfam10,\n\ generic32, generic64\n\ EXTENSION is combination of:\n\ - mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, sse4,\n\ - avx, vmx, smx, xsave, movbe, ept, aes, pclmul, fma,\n\ + 8087, 287, 387, no87, mmx, nommx, sse, sse2, sse3,\n\ + ssse3, sse4.1, sse4.2, sse4, nosse, avx, noavx,\n\ + vmx, smx, xsave, movbe, ept, aes, pclmul, fma,\n\ clflush, syscall, rdtscp, 3dnow, 3dnowa, sse4a,\n\ svme, abm, padlock, fma4\n")); fprintf (stream, _("\ diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi index 9c0e52c..dc276b8 100644 --- a/gas/doc/c-i386.texi +++ b/gas/doc/c-i386.texi @@ -114,7 +114,12 @@ In addition to the basic instruction set, the assembler can be told to accept various extension mnemonics. For example, @code{-march=i686+sse4+vmx} extends @var{i686} with @var{sse4} and @var{vmx}. The following extensions are currently supported: +@code{8087}, +@code{287}, +@code{387}, +@code{no87}, @code{mmx}, +@code{nommx}, @code{sse}, @code{sse2}, @code{sse3}, @@ -122,7 +127,9 @@ accept various extension mnemonics. For example, @code{sse4.1}, @code{sse4.2}, @code{sse4}, +@code{nosse}, @code{avx}, +@code{noavx}, @code{vmx}, @code{smx}, @code{xsave}, @@ -141,6 +148,8 @@ accept various extension mnemonics. For example, @code{svme}, @code{abm} and @code{padlock}. +Note that rather than extending a basic instruction set, the extension +mnemonics starting with @code{no} revoke the respective functionality. When the @code{.arch} directive is used with @option{-march}, the @code{.arch} directive will take precedent. diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index a30164b..636cf48 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,16 @@ +2009-07-24 Jan Beulich <jbeulich@novell.com> + + * gas/i386/8087.[ds]: New. + * gas/i386/287.[ds]: New. + * gas/i386/387.[ds]: New. + * gas/i386/no87.[ls]: New. + * gas/i386/no87-2.[ls]: New. + * gas/i386/i386.exp: Run new tests. + * gas/i386/att-regs.s: Also check FPU register access. + * gas/i386/intel-regs.s: Likewise. + * gas/i386/att-regs.d: Adjust expectations. + * gas/i386/intel-regs.d: Likewise. + 2009-07-23 Ulrich Drepper <drepper@redhat.com> * gas/elf/type.s: Add unique global symbol definition. diff --git a/gas/testsuite/gas/i386/287.d b/gas/testsuite/gas/i386/287.d new file mode 100644 index 0000000..efee2a7 --- /dev/null +++ b/gas/testsuite/gas/i386/287.d @@ -0,0 +1,12 @@ +#objdump: -dw +#name: i386 287 + +.*: +file format .* + +Disassembly of section .text: + +0+ <_8087>: +[ ]*[0-9a-f]+: db e4[ ]+fnsetpm.* +[ ]*[0-9a-f]+: db e5[ ]+frstpm.* +[ ]*[0-9a-f]+: 9b db e4[ ]+fsetpm.* +#pass diff --git a/gas/testsuite/gas/i386/287.s b/gas/testsuite/gas/i386/287.s new file mode 100644 index 0000000..74ad160 --- /dev/null +++ b/gas/testsuite/gas/i386/287.s @@ -0,0 +1,10 @@ +# Check 287-only instructions. + + .text + .arch i286 + .arch .287 + .code16 +_8087: + fnsetpm + frstpm + fsetpm diff --git a/gas/testsuite/gas/i386/387.d b/gas/testsuite/gas/i386/387.d new file mode 100644 index 0000000..145381d --- /dev/null +++ b/gas/testsuite/gas/i386/387.d @@ -0,0 +1,17 @@ +#objdump: -dw +#name: i386 387 (cmdline) +#as: -march=i386+387 + +.*: +file format .* + +Disassembly of section .text: + +0+ <_387>: +[ ]*[0-9a-f]+: d9 ff[ ]+fcos[ ]* +[ ]*[0-9a-f]+: d9 f5[ ]+fprem1[ ]* +[ ]*[0-9a-f]+: d9 fe[ ]+fsin[ ]* +[ ]*[0-9a-f]+: d9 fb[ ]+fsincos[ ]* +[ ]*[0-9a-f]+: dd e1[ ]+fucom[ ]+%st\(1\) +[ ]*[0-9a-f]+: dd e9[ ]+fucomp[ ]+%st\(1\) +[ ]*[0-9a-f]+: da e9[ ]+fucompp[ ]* +#pass diff --git a/gas/testsuite/gas/i386/387.s b/gas/testsuite/gas/i386/387.s new file mode 100644 index 0000000..6593d05 --- /dev/null +++ b/gas/testsuite/gas/i386/387.s @@ -0,0 +1,11 @@ +# Check 387+ instructions. + + .text +_387: + fcos + fprem1 + fsin + fsincos + fucom + fucomp + fucompp diff --git a/gas/testsuite/gas/i386/8087.d b/gas/testsuite/gas/i386/8087.d new file mode 100644 index 0000000..dee7f4d --- /dev/null +++ b/gas/testsuite/gas/i386/8087.d @@ -0,0 +1,13 @@ +#objdump: -dw +#name: i386 8087 + +.*: +file format .* + +Disassembly of section .text: + +0+ <_8087>: +[ ]*[0-9a-f]+: 9b db e1[ ]+fdisi.* +[ ]*[0-9a-f]+: 9b db e0[ ]+feni.* +[ ]*[0-9a-f]+: db e1[ ]+fndisi.* +[ ]*[0-9a-f]+: db e0[ ]+fneni.* +#pass diff --git a/gas/testsuite/gas/i386/8087.s b/gas/testsuite/gas/i386/8087.s new file mode 100644 index 0000000..9149eb2 --- /dev/null +++ b/gas/testsuite/gas/i386/8087.s @@ -0,0 +1,11 @@ +# Check 8087-only instructions. + + .text + .arch i8086 + .arch .8087 + .code16 +_8087: + fdisi + feni + fndisi + fneni diff --git a/gas/testsuite/gas/i386/att-regs.d b/gas/testsuite/gas/i386/att-regs.d index 185507e..47908f8 100644 --- a/gas/testsuite/gas/i386/att-regs.d +++ b/gas/testsuite/gas/i386/att-regs.d @@ -13,7 +13,7 @@ Disassembly of section \.text: .*[ ]+R_386_16[ ]+r8d .*[ ]+R_386_16[ ]+r8 .*[ ]+R_386_16[ ]+fs -#.*[ ]+R_386_16[ ]+st +.*[ ]+R_386_16[ ]+st .*[ ]+R_386_16[ ]+cr0 .*[ ]+R_386_16[ ]+dr0 .*[ ]+R_386_16[ ]+tr0 @@ -25,7 +25,7 @@ Disassembly of section \.text: .*[ ]+R_386_32[ ]+r8w .*[ ]+R_386_32[ ]+r8d .*[ ]+R_386_32[ ]+r8 -#.*[ ]+R_386_32[ ]+st +.*[ ]+R_386_32[ ]+st .*:[ ]+0f 20 c0[ ]+mov[ ]+%cr0,%eax .*:[ ]+0f 21 c0[ ]+mov[ ]+%db0,%eax .*:[ ]+0f 24 c0[ ]+mov[ ]+%tr0,%eax diff --git a/gas/testsuite/gas/i386/att-regs.s b/gas/testsuite/gas/i386/att-regs.s index 2c15a17..1e49e09 100644 --- a/gas/testsuite/gas/i386/att-regs.s +++ b/gas/testsuite/gas/i386/att-regs.s @@ -11,7 +11,7 @@ mov r8d, ax ; add al, (bx,si) mov r8, ax ; add al, (bx,si) mov fs, ax ; add al, (bx,si) -#todo mov st, ax ; add al, (bx,si) + mov st, ax ; add al, (bx,si) mov cr0, ax ; add al, (bx,si) mov dr0, ax ; add al, (bx,si) mov tr0, ax ; add al, (bx,si) @@ -26,7 +26,7 @@ mov r8w, eax mov r8d, eax mov r8, eax -#todo mov st, eax + mov st, eax mov cr0, eax mov dr0, eax mov tr0, eax @@ -34,7 +34,7 @@ mov xmm0, eax mov ymm0, eax -#todo .arch i387 + .arch .387 ffree st .arch .mmx diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 5595afd..b0fda93 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -114,6 +114,11 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_list_test "arch-10-4" "-march=i686+sse4+vmx+smx -I${srcdir}/$subdir -al" run_dump_test "arch-11" run_dump_test "arch-12" + run_dump_test "8087" + run_dump_test "287" + run_dump_test "387" + run_list_test "no87" "-al" + run_list_test "no87-2" "-march=i686+no87 -al" run_dump_test "xsave" run_dump_test "xsave-intel" run_dump_test "aes" diff --git a/gas/testsuite/gas/i386/intel-regs.d b/gas/testsuite/gas/i386/intel-regs.d index bfca1c1..6c52dec 100644 --- a/gas/testsuite/gas/i386/intel-regs.d +++ b/gas/testsuite/gas/i386/intel-regs.d @@ -13,7 +13,7 @@ Disassembly of section \.text: .*[ ]+R_386_16[ ]+r8d .*[ ]+R_386_16[ ]+r8 .*[ ]+R_386_16[ ]+fs -#.*[ ]+R_386_16[ ]+st +.*[ ]+R_386_16[ ]+st .*[ ]+R_386_16[ ]+cr0 .*[ ]+R_386_16[ ]+dr0 .*[ ]+R_386_16[ ]+tr0 @@ -25,7 +25,7 @@ Disassembly of section \.text: .*[ ]+R_386_32[ ]+r8w .*[ ]+R_386_32[ ]+r8d .*[ ]+R_386_32[ ]+r8 -#.*[ ]+R_386_32[ ]+st +.*[ ]+R_386_32[ ]+st .*:[ ]+0f 20 c0[ ]+mov[ ]+%cr0,%eax .*:[ ]+0f 21 c0[ ]+mov[ ]+%db0,%eax .*:[ ]+0f 24 c0[ ]+mov[ ]+%tr0,%eax diff --git a/gas/testsuite/gas/i386/intel-regs.s b/gas/testsuite/gas/i386/intel-regs.s index 6b716b7..7d52711 100644 --- a/gas/testsuite/gas/i386/intel-regs.s +++ b/gas/testsuite/gas/i386/intel-regs.s @@ -11,7 +11,7 @@ mov ax, r8d ; add [bx+si], al mov ax, r8 ; add [bx+si], al mov ax, fs ; add [bx+si], al -#todo mov ax, st ; add [bx+si], al + mov ax, st ; add [bx+si], al mov ax, cr0 ; add [bx+si], al mov ax, dr0 ; add [bx+si], al mov ax, tr0 ; add [bx+si], al @@ -26,7 +26,7 @@ mov eax, r8w mov eax, r8d mov eax, r8 -#todo mov eax, st + mov eax, st mov eax, cr0 mov eax, dr0 mov eax, tr0 @@ -34,7 +34,7 @@ mov eax, xmm0 mov eax, ymm0 -#todo .arch i387 + .arch .387 ffree st .arch .mmx diff --git a/gas/testsuite/gas/i386/no87-2.l b/gas/testsuite/gas/i386/no87-2.l new file mode 100644 index 0000000..92cb9f8 --- /dev/null +++ b/gas/testsuite/gas/i386/no87-2.l @@ -0,0 +1,19 @@ +.*: Assembler messages: +.*:3: Error: .*no87.* +.*:6: Error: .*287.* +.*:9: Error: .*387.* +.*:12: Error: .*i686.* +GAS LISTING .* +#... +[ ]*[1-9][0-9]*[ ]+fninit +[ ]*[1-9][0-9]*[ ]+\.arch \.287 +[ ]*[1-9][0-9]*[ ]+\?+ DBE3[ ]+fninit +[ ]*[1-9][0-9]*[ ]+fsincos +[ ]*[1-9][0-9]*[ ]+\.arch \.387 +[ ]*[1-9][0-9]*[ ]+\?+ D9FB[ ]+fsincos +[ ]*[1-9][0-9]*[ ]+fcomi +[ ]*[1-9][0-9]*[ ]+\.arch i686 +[ ]*[1-9][0-9]*[ ]+\?+ DBF1[ ]+fcomi +[ ]*[1-9][0-9]*[ ]+fisttpl[ ].* +[ ]*[1-9][0-9]*[ ]+\.arch prescott +[ ]*[1-9][0-9]*[ ]+\?+ DB08[ ]+fisttpl[ ].* diff --git a/gas/testsuite/gas/i386/no87-2.s b/gas/testsuite/gas/i386/no87-2.s new file mode 100644 index 0000000..5b8c634 --- /dev/null +++ b/gas/testsuite/gas/i386/no87-2.s @@ -0,0 +1,14 @@ +# Test -march=...+no87 + .text + fninit + .arch .287 + fninit + fsincos + .arch .387 + fsincos + fcomi + .arch i686 + fcomi + fisttpl (%eax) + .arch prescott + fisttpl (%eax) diff --git a/gas/testsuite/gas/i386/no87.l b/gas/testsuite/gas/i386/no87.l new file mode 100644 index 0000000..c201718 --- /dev/null +++ b/gas/testsuite/gas/i386/no87.l @@ -0,0 +1,25 @@ +.*: Assembler messages: +.*:4: Error: .*generic.* +.*:7: Error: .*287.* +.*:10: Error: .*387.* +.*:13: Error: .*i686.* +.*:17: Error: .*no87.* +.*:18: Error: .*no87.* +GAS LISTING .* +#... +[ ]*[1-9][0-9]*[ ]+\.arch generic32 +[ ]*[1-9][0-9]*[ ]+fninit +[ ]*[1-9][0-9]*[ ]+\.arch \.287 +[ ]*[1-9][0-9]*[ ]+\?+ DBE3[ ]+fninit +[ ]*[1-9][0-9]*[ ]+fsincos +[ ]*[1-9][0-9]*[ ]+\.arch \.387 +[ ]*[1-9][0-9]*[ ]+\?+ D9FB[ ]+fsincos +[ ]*[1-9][0-9]*[ ]+fcomi +[ ]*[1-9][0-9]*[ ]+\.arch i686 +[ ]*[1-9][0-9]*[ ]+\?+ DBF1[ ]+fcomi +[ ]*[1-9][0-9]*[ ]+fisttpl[ ].* +[ ]*[1-9][0-9]*[ ]+\.arch prescott +[ ]*[1-9][0-9]*[ ]+\?+ DB08[ ]+fisttpl[ ].* +[ ]*[1-9][0-9]*[ ]+\.arch \.no87 +[ ]*[1-9][0-9]*[ ]+fcomi +[ ]*[1-9][0-9]*[ ]+fisttpl[ ].* diff --git a/gas/testsuite/gas/i386/no87.s b/gas/testsuite/gas/i386/no87.s new file mode 100644 index 0000000..a992978 --- /dev/null +++ b/gas/testsuite/gas/i386/no87.s @@ -0,0 +1,18 @@ +# Test .arch .no87 + .text + .arch generic32 + fninit + .arch .287 + fninit + fsincos + .arch .387 + fsincos + fcomi + .arch i686 + fcomi + fisttpl (%eax) + .arch prescott + fisttpl (%eax) + .arch .no87 + fcomi + fisttpl (%eax) |