diff options
author | Matthew Wahab <matthew.wahab@arm.com> | 2016-01-12 16:35:30 +0000 |
---|---|---|
committer | Matthew Wahab <matthew.wahab@arm.com> | 2016-01-12 16:41:07 +0000 |
commit | 105bde5771c1c1b26b69e3623c88f3caafa3a480 (patch) | |
tree | 6d847f75a404a4fe864847a023de276aaffcd8a7 /gas/config | |
parent | ac06903dcff237777c8d507a03aafd79c84129ae (diff) | |
download | gdb-105bde5771c1c1b26b69e3623c88f3caafa3a480.zip gdb-105bde5771c1c1b26b69e3623c88f3caafa3a480.tar.gz gdb-105bde5771c1c1b26b69e3623c88f3caafa3a480.tar.bz2 |
[ARM] Support ARMv8.2 RAS extension.
The ARMv8.2 architecture includes the RAS extension which adds an
instruction, ESB, and a number of coprocessor registers. This patch adds
the instruction to binutils, making it available when -march=armv8.2-a
is selected. It also adds tests for the instruction and for the
coprocessor registers.
gas/
2016-01-12 Matthew Wahab <matthew.wahab@arm.com>
* config/tc-arm.c (arm_ext_v8_2): New.
(insns): Add "esb".
* testsuite/gas/arm/armv8_2-a.d: New.
* testsuite/gas/arm/armv8_2-a.s: New.
opcodes/
2016-01-12 Matthew Wahab <matthew.wahab@arm.com>
* arm-dis.c (arm_opcodes): Add "esb".
(thumb_opcodes): Likewise.
Change-Id: I67f3d70789db78d1c66a56c4994675f99ac15e34
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-arm.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 0edc01a..046abe5 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -214,6 +214,8 @@ static const arm_feature_set arm_ext_v6t2_v8m = /* Instructions shared between ARMv8-A and ARMv8-M. */ static const arm_feature_set arm_ext_atomics = ARM_FEATURE_CORE_HIGH (ARM_EXT2_ATOMICS); +static const arm_feature_set arm_ext_v8_2 = + ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_2A); static const arm_feature_set arm_arch_any = ARM_ANY; static const arm_feature_set arm_arch_full = ARM_FEATURE (-1, -1, -1); @@ -19340,6 +19342,13 @@ static const struct asm_opcode insns[] = TUEc("crc32ch",1200240, fad0f090, 3, (RR, oRR, RR), crc32ch), TUEc("crc32cw",1400240, fad0f0a0, 3, (RR, oRR, RR), crc32cw), + /* ARMv8.2 RAS extension. */ +#undef ARM_VARIANT +#define ARM_VARIANT & arm_ext_v8_2 +#undef THUMB_VARIANT +#define THUMB_VARIANT & arm_ext_v8_2 + TUE ("esb", 320f010, f3af8010, 0, (), noargs, noargs), + #undef ARM_VARIANT #define ARM_VARIANT & fpu_fpa_ext_v1 /* Core FPA instruction set (V1). */ #undef THUMB_VARIANT |