Skip to content
  • Scott Egerton's avatar
    MIPS: Add CRC ASE support · 730c3174
    Scott Egerton authored
    Add support for the CRC Application Specific Extension for Release 6 of
    the MIPS Architecture.
    
    [1] "MIPS Architecture for Programmers Volume II-A: The MIPS32
        Instruction Set Manual", Imagination Technologies Ltd., Document
        Number: MD00086, Revision 6.06, December 15, 2016, Section 3.2
        "Alphabetical List of Instructions", pp. 143-148
    
    [2] "MIPS Architecture for Programmers Volume II-A: The MIPS64
        Instruction Set Manual", Imagination Technologies Ltd., Document
        Number: MD00087, Revision 6.06, December 15, 2016, Section 3.2
        "Alphabetical List of Instructions", pp. 165-170
    
    ChangeLog:
    
    bfd/
    2018-06-13  Scott Egerton  <scott.egerton@imgtec.com>
                Faraz Shahbazker  <Faraz.Shahbazker@mips.com>
    
    	* elfxx-mips.c (print_mips_ases): Add CRC.
    
    binutils/
    2018-06-13  Scott Egerton  <scott.egerton@imgtec.com>
                Faraz Shahbazker  <Faraz.Shahbazker@mips.com>
    
    	* readelf.c (print_mips_ases): Add CRC.
    
    gas/
    2018-06-13  Scott Egerton  <scott.egerton@imgtec.com>
                Faraz Shahbazker  <Faraz.Shahbazker@mips.com>
                Maciej W. Rozycki  <macro@mips.com>
    
    	* config/tc-mips.c (options): Add OPTION_CRC and OPTION_NO_CRC.
    	(md_longopts): Likewise.
    	(md_show_usage): Add help for -mcrc and -mno-crc.
    	(mips_ases): Define availability for CRC and CRC64.
    	(mips_convert_ase_flags): Map ASE_CRC to AFL_ASE_CRC.
    	* doc/as.texinfo: Document -mcrc, -mno-crc.
    	* doc/c-mips.texi: Document -mcrc, -mno-crc, .set crc and
    	.set no-crc.
    	* testsuite/gas/mips/ase-errors-1.l: Add error checks for CRC
    	ASE.
    	* testsuite/gas/mips/ase-errors-2.l: Likewise.
    	* testsuite/gas/mips/ase-errors-1.s: Likewise.
    	* testsuite/gas/mips/ase-errors-2.s: Likewise.
    	* testsuite/gas/mips/crc.d: New test.
    	* testsuite/gas/mips/crc64.d: New test.
    	* testsuite/gas/mips/crc-err.d: New test.
    	* testsuite/gas/mips/crc64-err.d: New test.
    	* testsuite/gas/mips/crc-err.l: New test stderr output.
    	* testsuite/gas/mips/crc64-err.l: New test stderr output.
    	* testsuite/gas/mips/crc.s: New test source.
    	* testsuite/gas/mips/crc64.s: New test source.
    	* testsuite/gas/mips/crc-err.s: New test source.
    	* testsuite/gas/mips/crc64-err.s: New test source.
    	* testsuite/gas/mips/mips.exp: Run the new tests.
    
    include/
    2018-06-13  Scott Egerton  <scott.egerton@imgtec.com>
                Faraz Shahbazker  <Faraz.Shahbazker@mips.com>
    
    	* elf/mips.h (AFL_ASE_CRC): New macro.
    	(AFL_ASE_MASK): Update to include AFL_ASE_CRC.
    	* opcode/mips.h (ASE_CRC): New macro.
    	* opcode/mips.h (ASE_CRC64): Likewise.
    
    opcodes/
    2018-06-13  Scott Egerton  <scott.egerton@imgtec.com>
                Faraz Shahbazker  <Faraz.Shahbazker@mips.com>
    
    	* mips-dis.c (mips_arch_choices): Add CRC and CRC64 ASEs.
    	* mips-opc.c (CRC, CRC64): New macros.
    	(mips_builtin_opcodes): Define crc32b, crc32h, crc32w,
    	crc32cb, crc32ch and crc32cw for CRC.  Define crc32d and
    	crc32cd for CRC64.
    730c3174
To find the state of this project's repository at the time of any of these versions, check out the tags.