Add support for ARMv8-M security extensions instructions
authorThomas Preud'homme <thomas.preudhomme@arm.com>
Tue, 10 May 2016 14:01:53 +0000 (15:01 +0100)
committerThomas Preud'homme <thomas.preudhomme@arm.com>
Tue, 10 May 2016 14:03:38 +0000 (15:03 +0100)
commit16a1fa25be5705102b84ef0ea6eea71312328c2c
tree36e99bc00e549232c507b990e96535dd5c07f42b
parent29f4fdc42db187300b208ba4310920bedb300a04
Add support for ARMv8-M security extensions instructions

2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>

gas/
* config/tc-arm.c (arm_ext_m): Add feature bit ARM_EXT2_V8M_MAIN.
(arm_ext_v8m_main): New feature set for bit ARM_EXT2_V8M_MAIN.
(arm_ext_v8m_m_only): New feature set for instructions in ARMv8-M not
shared with a non M profile architecture.
(do_rn): New function.
(known_t32_only_insn): Check opcode against arm_ext_v8m_m_only rather
than arm_ext_v8m.
(v7m_psrs): Add ARMv8-M security extensions new special registers.
(insns): Add ARMv8-M Security Extensions instructions.
(aeabi_set_public_attributes): Use arm_ext_v8m_m_only instead of
arm_ext_v8m_m to decide the profile and the Thumb ISA.
* testsuite/gas/arm/archv8m-cmse.s: New file.
* testsuite/gas/arm/archv8m-cmse-main.s: Likewise..
* testsuite/gas/arm/archv8m-cmse-msr.s: Likewise.
* testsuite/gas/arm/any-cmse.d: Likewise.
* testsuite/gas/arm/any-cmse-main.d: Likewise.
* testsuite/gas/arm/archv8m-cmse-base.d: Likewise.
* testsuite/gas/arm/archv8m-cmse-msr-base.d: Likewise.
* testsuite/gas/arm/archv8m-cmse-main-1.d: Likewise.
* testsuite/gas/arm/archv8m-cmse-main-2.d: Likewise.
* testsuite/gas/arm/archv8m-cmse-msr-main.d: Likewise.

include/
* opcode/arm.h (ARM_EXT2_V8M_MAIN): new feature bit.
(ARM_AEXT2_V8M_MAIN): New architecture extension feature set.
(ARM_ARCH_V8M_MAIN): Use ARM_AEXT2_V8M_MAIN instead of ARM_AEXT2_V8M
for the high core bits.

opcodes/
* arm-dis.c (coprocessor_opcodes): Add entries for VFP ARMv8-M
Mainline Security Extensions instructions.
(thumb_opcodes): Add entries for narrow ARMv8-M Security
Extensions instructions.
(thumb32_opcodes): Add entries for wide ARMv8-M Security Extensions
instructions.
(psr_name): Add new MSP_NS and PSP_NS ARMv8-M Security Extensions
special registers.
16 files changed:
gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/gas/arm/any-cmse-main.d [new file with mode: 0644]
gas/testsuite/gas/arm/any-cmse.d [new file with mode: 0644]
gas/testsuite/gas/arm/archv8m-cmse-base.d [new file with mode: 0644]
gas/testsuite/gas/arm/archv8m-cmse-main-1.d [new file with mode: 0644]
gas/testsuite/gas/arm/archv8m-cmse-main-2.d [new file with mode: 0644]
gas/testsuite/gas/arm/archv8m-cmse-main.s [new file with mode: 0644]
gas/testsuite/gas/arm/archv8m-cmse-msr-base.d [new file with mode: 0644]
gas/testsuite/gas/arm/archv8m-cmse-msr-main.d [new file with mode: 0644]
gas/testsuite/gas/arm/archv8m-cmse-msr.s [new file with mode: 0644]
gas/testsuite/gas/arm/archv8m-cmse.s [new file with mode: 0644]
include/ChangeLog
include/opcode/arm.h
opcodes/ChangeLog
opcodes/arm-dis.c