diff options
author | Tamar Christina <tamar.christina@arm.com> | 2017-11-16 16:19:37 +0000 |
---|---|---|
committer | Tamar Christina <tamar.christina@arm.com> | 2017-11-16 16:27:35 +0000 |
commit | d0f7791c6659081f3a62e220289417c010997baa (patch) | |
tree | 2ace58421ccd2ab2d395f5514132bde64c9c3f1e /gas | |
parent | fadfa6b0020b934500356e7aea8934a4565657d3 (diff) | |
download | fsf-binutils-gdb-d0f7791c6659081f3a62e220289417c010997baa.zip fsf-binutils-gdb-d0f7791c6659081f3a62e220289417c010997baa.tar.gz fsf-binutils-gdb-d0f7791c6659081f3a62e220289417c010997baa.tar.bz2 |
Add new AArch64 FP16 FM{A|S} instructions.
This patch separates the new FP16 instructions backported from Armv8.4-a to Armv8.2-a
into a new flag order to distinguish them from the rest of the already existing optional
FP16 instructions in Armv8.2-a.
The new flag "+fp16fml" is available from Armv8.2-a and implies +fp16 and is mandatory on
Armv8.4-a.
gas/
* config/tc-aarch64.c (fp16fml): New.
* doc/c-aarch64.texi (fp16fml): New.
* testsuite/gas/aarch64/armv8_2-a-crypto-fp16.d (fp16): Make fp16fml.
* testsuite/gas/aarch64/armv8_3-a-crypto-fp16.d (fp16): Make fp16fml.
include/
* opcode/aarch64.h: (AARCH64_FEATURE_F16_FML): New.
(AARCH64_ARCH_V8_4): Enable AARCH64_FEATURE_F16_FML by default.
opcodes/
* aarch64-tbl.h (aarch64_feature_fp_16_v8_2): Require AARCH64_FEATURE_F16_FML
and AARCH64_FEATURE_F16.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/config/tc-aarch64.c | 3 | ||||
-rw-r--r-- | gas/doc/c-aarch64.texi | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/armv8_2-a-crypto-fp16.d | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/armv8_3-a-crypto-fp16.d | 2 |
5 files changed, 15 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 78b2f94..ee1ec6f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,12 @@ 2017-11-16 Tamar Christina <tamar.christina@arm.com> + * config/tc-aarch64.c (fp16fml): New. + * doc/c-aarch64.texi (fp16fml): New. + * testsuite/gas/aarch64/armv8_2-a-crypto-fp16.d (fp16): Make fp16fml. + * testsuite/gas/aarch64/armv8_3-a-crypto-fp16.d (fp16): Make fp16fml. + +2017-11-16 Tamar Christina <tamar.christina@arm.com> + * opcodes/aarch64-tbl.h (aarch64_feature_crypto): Add ARCH64_FEATURE_SIMD and AARCH64_FEATURE_FP. (aarch64_feature_crypto_v8_2, aarch64_feature_sm4): Likewise. diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 8754237..4ae0624 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -8499,6 +8499,9 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = { AARCH64_FEATURE (AARCH64_FEATURE_SIMD, 0)}, {"fp16", AARCH64_FEATURE (AARCH64_FEATURE_F16, 0), AARCH64_FEATURE (AARCH64_FEATURE_FP, 0)}, + {"fp16fml", AARCH64_FEATURE (AARCH64_FEATURE_F16_FML, 0), + AARCH64_FEATURE (AARCH64_FEATURE_FP + | AARCH64_FEATURE_F16, 0)}, {"profile", AARCH64_FEATURE (AARCH64_FEATURE_PROFILE, 0), AARCH64_ARCH_NONE}, {"sve", AARCH64_FEATURE (AARCH64_FEATURE_SVE, 0), diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi index 7d872b0..538b103 100644 --- a/gas/doc/c-aarch64.texi +++ b/gas/doc/c-aarch64.texi @@ -176,6 +176,9 @@ automatically cause those extensions to be disabled. @code{simd} and @code{compnum}. @item @code{dotprod} @tab ARMv8.2-A @tab ARMv8.4-A or later @tab Enable the Dot Product extension. This implies @code{simd}. +@item @code{fp16fml} @tab ARMv8.2-A @tab ARMv8.4-A or later + @tab Enable ARMv8.2 16-bit floating-point multiplication variant support. + This implies @code{fp16}. @end multitable @node AArch64 Syntax diff --git a/gas/testsuite/gas/aarch64/armv8_2-a-crypto-fp16.d b/gas/testsuite/gas/aarch64/armv8_2-a-crypto-fp16.d index 10c7786e..244ba14 100644 --- a/gas/testsuite/gas/aarch64/armv8_2-a-crypto-fp16.d +++ b/gas/testsuite/gas/aarch64/armv8_2-a-crypto-fp16.d @@ -1,4 +1,4 @@ -#as: -march=armv8.2-a+crypto+sm4+sha3+fp16 +#as: -march=armv8.2-a+crypto+sm4+sha3+fp16fml #objdump: -dr .*: file format .* diff --git a/gas/testsuite/gas/aarch64/armv8_3-a-crypto-fp16.d b/gas/testsuite/gas/aarch64/armv8_3-a-crypto-fp16.d index 93909f1..6a4c9e3 100644 --- a/gas/testsuite/gas/aarch64/armv8_3-a-crypto-fp16.d +++ b/gas/testsuite/gas/aarch64/armv8_3-a-crypto-fp16.d @@ -1,4 +1,4 @@ -#as: -march=armv8.3-a+crypto+sm4+sha3+fp16 +#as: -march=armv8.3-a+crypto+sm4+sha3+fp16fml #source: armv8_2-a-crypto-fp16.s #objdump: -dr |