From 309d33736f82fece9dbeae7a4ba096cdc2d77753 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Fri, 24 Jul 2009 15:41:20 +0000 Subject: gas/ 2009-07-24 Jan Beulich * 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 * 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 * 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. --- gas/ChangeLog | 13 ++++++++ gas/config/tc-i386.c | 60 +++++++++++++++++++++++++++++++++---- gas/doc/c-i386.texi | 9 ++++++ gas/testsuite/ChangeLog | 13 ++++++++ gas/testsuite/gas/i386/287.d | 12 ++++++++ gas/testsuite/gas/i386/287.s | 10 +++++++ gas/testsuite/gas/i386/387.d | 17 +++++++++++ gas/testsuite/gas/i386/387.s | 11 +++++++ gas/testsuite/gas/i386/8087.d | 13 ++++++++ gas/testsuite/gas/i386/8087.s | 11 +++++++ gas/testsuite/gas/i386/att-regs.d | 4 +-- gas/testsuite/gas/i386/att-regs.s | 6 ++-- gas/testsuite/gas/i386/i386.exp | 5 ++++ gas/testsuite/gas/i386/intel-regs.d | 4 +-- gas/testsuite/gas/i386/intel-regs.s | 6 ++-- gas/testsuite/gas/i386/no87-2.l | 19 ++++++++++++ gas/testsuite/gas/i386/no87-2.s | 14 +++++++++ gas/testsuite/gas/i386/no87.l | 25 ++++++++++++++++ gas/testsuite/gas/i386/no87.s | 18 +++++++++++ 19 files changed, 254 insertions(+), 16 deletions(-) create mode 100644 gas/testsuite/gas/i386/287.d create mode 100644 gas/testsuite/gas/i386/287.s create mode 100644 gas/testsuite/gas/i386/387.d create mode 100644 gas/testsuite/gas/i386/387.s create mode 100644 gas/testsuite/gas/i386/8087.d create mode 100644 gas/testsuite/gas/i386/8087.s create mode 100644 gas/testsuite/gas/i386/no87-2.l create mode 100644 gas/testsuite/gas/i386/no87-2.s create mode 100644 gas/testsuite/gas/i386/no87.l create mode 100644 gas/testsuite/gas/i386/no87.s (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index 715c731e16..d798b0a8cb 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,16 @@ +2009-07-24 Jan Beulich + + * 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 PR 10437 diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 42a95ffdfb..62486ec630 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 9c0e52c07d..dc276b8abf 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 a30164baa3..636cf481e2 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,16 @@ +2009-07-24 Jan Beulich + + * 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 * 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 0000000000..efee2a754c --- /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 0000000000..74ad160c27 --- /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 0000000000..145381d59a --- /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 0000000000..6593d05d47 --- /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 0000000000..dee7f4dc12 --- /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 0000000000..9149eb23c7 --- /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 185507e0f3..47908f8ea3 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 2c15a17c4a..1e49e09bd7 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 5595afd52b..b0fda93dbf 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 bfca1c1094..6c52deca03 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 6b716b77c4..7d527113ee 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 0000000000..92cb9f88cc --- /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 0000000000..5b8c634282 --- /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 0000000000..c201718ec5 --- /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 0000000000..a9929781d4 --- /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) -- cgit v1.2.1