Skip to content
  • H.J. Lu's avatar
    x86: Remove support for old (<= 2.8.1) versions of gcc · bd5dea88
    H.J. Lu authored
    Old (<= 2.8.1) versions of gcc generate broken fsubp, fsubrp, fdivp and
    fdivrp instructions.  Assembler translates them to correct ones with a
    warning:
    
    [hjl@gnu-cfl-1 gas]$ cat x.s
    	fsubp %st(3),%st
    [hjl@gnu-cfl-1 gas]$ gcc -c x.s
    x.s: Assembler messages:
    x.s:1: Warning: translating to `fsubp %st,%st(3)'
    [hjl@gnu-cfl-1 gas]$
    
    This patch removes support for old (<= 2.8.1) versions of gcc:
    
    [hjl@gnu-cfl-1 gas]$ ./as-new -o x.o x.s
    x.s: Assembler messages:
    x.s:1: Error: operand type mismatch for `fsubp'
    [hjl@gnu-cfl-1 gas]$
    
    gas/
    
    	* NEWS: Mention -mold-gcc removal.
    	* config/tc-i386.c (i386_error): Remove old_gcc_only.
    	(old_gcc): Removed.
    	(match_template): Remove old gcc support.
    	(OPTION_MOLD_GCC): Removed.
    	(OPTION_MRELAX_RELOCATIONS): Updated.
    	(md_longopts): Remove OPTION_MOLD_GCC.
    	(md_parse_option): Likewise.
    	(md_show_usage): Remove -mold-gcc.
    	* testsuite/gas/i386/general.s: Convert fsub/fdiv tests for old
    	(<= 2.8.1) versions of gcc.
    	* testsuite/gas/i386/intel.s: Likewise.
    	* testsuite/gas/i386/general.l: Updated.
    	* testsuite/gas/i386/intel-intel.d: Likewise.
    	* testsuite/gas/i386/intel.d: Likewise.
    	* testsuite/gas/i386/intel.e: Likewise.
    	* testsuite/gas/i386/i386.exp: Don't pass -mold-gcc to general.
    
    include/
    
    	* opcode/i386 (OLDGCC_COMPAT): Removed.
    
    opcodes/
    
    	* i386-gen.c (opcode_modifiers): Remove OldGcc.
    	* i386-opc.h (OldGcc): Removed.
    	(i386_opcode_modifier): Remove oldgcc.
    	* i386-opc.tbl: Remove fsubp, fsubrp, fdivp and fdivrp
    	instructions for old (<= 2.8.1) versions of gcc.
    	* i386-tbl.h: Regenerated.
    bd5dea88