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. --- opcodes/i386-opc.h | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'opcodes/i386-opc.h') diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h index 0f99ddb..c052fe1 100644 --- a/opcodes/i386-opc.h +++ b/opcodes/i386-opc.h @@ -46,8 +46,18 @@ #define CpuClflush (Cpu686 + 1) /* SYSCALL Instuctions support required */ #define CpuSYSCALL (CpuClflush + 1) +/* Floating point support required */ +#define Cpu8087 (CpuSYSCALL + 1) +/* i287 support required */ +#define Cpu287 (Cpu8087 + 1) +/* i387 support required */ +#define Cpu387 (Cpu287 + 1) +/* i686 and floating point support required */ +#define Cpu687 (Cpu387 + 1) +/* SSE3 and floating point support required */ +#define CpuFISTTP (Cpu687 + 1) /* MMX support required */ -#define CpuMMX (CpuSYSCALL + 1) +#define CpuMMX (CpuFISTTP + 1) /* SSE support required */ #define CpuSSE (CpuMMX + 1) /* SSE2 support required */ @@ -126,6 +136,11 @@ typedef union i386_cpu_flags unsigned int cpui686:1; unsigned int cpuclflush:1; unsigned int cpusyscall:1; + unsigned int cpu8087:1; + unsigned int cpu287:1; + unsigned int cpu387:1; + unsigned int cpu687:1; + unsigned int cpufisttp:1; unsigned int cpummx:1; unsigned int cpusse:1; unsigned int cpusse2:1; -- cgit v1.1