diff options
author | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2013-03-11 11:09:32 +0000 |
---|---|---|
committer | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2013-03-11 11:09:32 +0000 |
commit | f0829dce7d2a13b553d6544c7d0fafd0633db0b7 (patch) | |
tree | 812d634c197d06a7779a93d2811b3441f4a5b61d | |
parent | 41090b61931cedb0d012d6be6cc842eac6875d65 (diff) | |
download | newlib-f0829dce7d2a13b553d6544c7d0fafd0633db0b7.zip newlib-f0829dce7d2a13b553d6544c7d0fafd0633db0b7.tar.gz newlib-f0829dce7d2a13b553d6544c7d0fafd0633db0b7.tar.bz2 |
Add support for AArch32 CRC instruction in ARMv8.
gas/ChangeLog
2013-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/tc-arm.c (crc_ext_armv8): New feature set.
(UNPRED_REG): New macro.
(do_crc32_1): New function.
(do_crc32b, do_crc32h, do_crc32w, do_crc32cb,
do_crc32ch, do_crc32cw): Likewise.
(TUEc): New macro.
(insns): Add entries for crc32 mnemonics.
(arm_extensions): Add entry for crc.
include/opcode/ChangeLog
2013-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* arm.h (CRC_EXT_ARMV8): New constant.
(ARCH_CRC_ARMV8): New macro.
opcodes/ChangeLog
2013-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* arm-dis.c (arm_opcodes): Add entries for CRC instructions.
(thumb32_opcodes): Likewise.
(print_insn_thumb32): Handle 'S' control char.
gas/testsuite/ChangeLog
2013-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* gas/arm/crc32-bad.d: New file.
* gas/arm/crc32-bad.l: Likewise.
* gas/arm/crc32-bad.s: Likewise.
* gas/arm/crc32.d: Likewise.
* gas/arm/crc32.s: Likewise.
-rw-r--r-- | include/opcode/ChangeLog | 5 | ||||
-rw-r--r-- | include/opcode/arm.h | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index fc2b40e..a46900a 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,8 @@ +2013-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + + * arm.h (CRC_EXT_ARMV8): New constant. + (ARCH_CRC_ARMV8): New macro. + 2013-02-28 Yufeng Zhang <yufeng.zhang@arm.com> * aarch64.h (AARCH64_FEATURE_CRC): New macro. diff --git a/include/opcode/arm.h b/include/opcode/arm.h index 1ac38a0..851fd3c 100644 --- a/include/opcode/arm.h +++ b/include/opcode/arm.h @@ -81,6 +81,7 @@ #define FPU_VFP_EXT_ARMV8 0x00020000 /* FP for ARMv8. */ #define FPU_NEON_EXT_ARMV8 0x00010000 /* Neon for ARMv8. */ #define FPU_CRYPTO_EXT_ARMV8 0x00008000 /* Crypto for ARMv8. */ +#define CRC_EXT_ARMV8 0x00004000 /* CRC32 for ARMv8. */ /* Architectures are the sum of the base and extensions. The ARM ARM (rev E) defines the following: ARMv3, ARMv3M, ARMv4xM, ARMv4, ARMv4TxM, ARMv4T, @@ -189,6 +190,7 @@ #define FPU_ARCH_NEON_VFP_ARMV8 ARM_FEATURE(0, FPU_NEON_ARMV8 | FPU_VFP_ARMV8) #define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8 \ ARM_FEATURE(0, FPU_CRYPTO_ARMV8 | FPU_NEON_ARMV8 | FPU_VFP_ARMV8) +#define ARCH_CRC_ARMV8 ARM_FEATURE(0, CRC_EXT_ARMV8) #define FPU_ARCH_ENDIAN_PURE ARM_FEATURE (0, FPU_ENDIAN_PURE) |