diff options
author | Jiong Wang <jiong.wang@arm.com> | 2017-06-28 11:00:55 +0100 |
---|---|---|
committer | Jiong Wang <jiong.wang@arm.com> | 2017-06-28 11:00:55 +0100 |
commit | c604a79ad4d47070bbcc0bc082188fb16892ceef (patch) | |
tree | e05bd320fafe416bbb5c0724572c63f73c2ee344 /include | |
parent | 41664b45ab6387184bd0e7512fcf7a72c58744e7 (diff) | |
download | gdb-c604a79ad4d47070bbcc0bc082188fb16892ceef.zip gdb-c604a79ad4d47070bbcc0bc082188fb16892ceef.tar.gz gdb-c604a79ad4d47070bbcc0bc082188fb16892ceef.tar.bz2 |
[ARM] Assembler and disassembler support Dot Product Extension
This patch add assembler and disassembler support for new Dot Product
Extension.
The support can be enabled through the new "+dotprod" extension.
include/
* opcode/arm.h (FPU_NEON_EXT_DOTPROD): New macro.
(FPU_ARCH_DOTPROD_NEON_VFP_ARMV8): New macro.
gas/
* config/tc-arm.c (fpu_neon_ext_dotprod): New variable.
(neon_scalar_for_mul): Improve comments.
(do_neon_dotproduct): New function to encode Dot Product instructions.
(do_neon_dotproduct_s): Wrapper function for signed Dot Product
instructions.
(do_neon_dotproduct_u): Wrapper function for unsigned Dot Product
instructions.
(insns): New entries for vsdot and vudot.
(arm_extensions): New entry for "dotprod".
* doc/c-arm.texi: Document new "dotprod" extension.
* testsuite/gas/arm/dotprod.s: New test source.
* testsuite/gas/arm/dotprod-illegal.s: New test source.
* testsuite/gas/arm/dotprod.d: New test.
* testsuite/gas/arm/dotprod-thumb2.d: New test.
* testsuite/gas/arm/dotprod-illegal.d: New test.
* testsuite/gas/arm/dotprod-legacy-arch.d: New test.
* testsuite/gas/arm/dotprod-illegal.l: New error file.
* testsuite/gas/arm/dotprod-legacy-arch.l: New error file.
opcodes/
* arm-dis.c (coprocessor_opcodes): New entries for vsdot and vudot.
Diffstat (limited to 'include')
-rw-r--r-- | include/ChangeLog | 5 | ||||
-rw-r--r-- | include/opcode/arm.h | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index dd2aab5..ce1e93d 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,8 @@ +2017-06-28 Jiong Wang <jiong.wang@arm.com> + + * opcode/arm.h (FPU_NEON_EXT_DOTPROD): New macro. + (FPU_ARCH_DOTPROD_NEON_VFP_ARMV8): New macro. + 2017-06-28 Maciej W. Rozycki <macro@imgtec.com> Matthew Fortune <matthew.fortune@imgtec.com> diff --git a/include/opcode/arm.h b/include/opcode/arm.h index e2049a0..e11ac7c 100644 --- a/include/opcode/arm.h +++ b/include/opcode/arm.h @@ -93,7 +93,8 @@ #define FPU_CRYPTO_EXT_ARMV8 0x00008000 /* Crypto for ARMv8. */ #define CRC_EXT_ARMV8 0x00004000 /* CRC32 for ARMv8. */ #define FPU_VFP_EXT_ARMV8xD 0x00002000 /* Single-precision FP for ARMv8. */ -#define FPU_NEON_EXT_RDMA 0x00001000 /* v8.1 Adv.SIMD extensions. */ +#define FPU_NEON_EXT_RDMA 0x00001000 /* v8.1 Adv.SIMD extensions. */ +#define FPU_NEON_EXT_DOTPROD 0x00000800 /* Dot Product extension. */ /* Architectures are the sum of the base and extensions. The ARM ARM (rev E) defines the following: ARMv3, ARMv3M, ARMv4xM, ARMv4, ARMv4TxM, ARMv4T, @@ -234,6 +235,8 @@ #define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1 \ ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 | FPU_NEON_ARMV8 | FPU_VFP_ARMV8 \ | FPU_NEON_EXT_RDMA) +#define FPU_ARCH_DOTPROD_NEON_VFP_ARMV8 \ + ARM_FEATURE_COPROC (FPU_NEON_EXT_DOTPROD | FPU_NEON_ARMV8 | FPU_VFP_ARMV8) #define FPU_ARCH_ENDIAN_PURE ARM_FEATURE_COPROC (FPU_ENDIAN_PURE) |