diff options
author | Andrea Corallo <andrea.corallo@arm.com> | 2021-05-14 16:19:39 +0200 |
---|---|---|
committer | Andrea Corallo <andrea.corallo@arm.com> | 2021-07-26 14:18:24 +0200 |
commit | 3751264cdd187e355af867198f5b70b36846a1a8 (patch) | |
tree | ec2e3e3ac0a4863a66a4e290394ae72263f09e4a | |
parent | 730afdd1399f12b6683b70b7cba0ef67651e4e05 (diff) | |
download | gdb-3751264cdd187e355af867198f5b70b36846a1a8.zip gdb-3751264cdd187e355af867198f5b70b36846a1a8.tar.gz gdb-3751264cdd187e355af867198f5b70b36846a1a8.tar.bz2 |
PATCH [1/10] arm: add 'bti' instruction for Armv8.1-M pacbti extension
gas/
2021-06-11 Andrea Corallo <andrea.corallo@arm.com>
* config/tc-arm.c (insns): Add 'bti' insn.
* testsuite/gas/arm/armv8_1-m-pacbti.d: New file.
* testsuite/gas/arm/armv8_1-m-pacbti.s: Likewise.
opcodes/
2021-06-11 Andrea Corallo <andrea.corallo@arm.com>
* arm-dis.c (thumb32_opcodes): Add bti instruction.
-rw-r--r-- | gas/config/tc-arm.c | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/armv8_1-m-pacbti.d | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/armv8_1-m-pacbti.s | 5 | ||||
-rw-r--r-- | opcodes/arm-dis.c | 5 |
4 files changed, 21 insertions, 0 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index fa023b4..d7f8fca 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -26305,6 +26305,7 @@ static const struct asm_opcode insns[] = /* Armv8.1-M Mainline instructions. */ #undef THUMB_VARIANT #define THUMB_VARIANT & arm_ext_v8_1m_main + ToU("bti", f3af800f, 0, (), noargs), toU("cinc", _cinc, 3, (RRnpcsp, RR_ZR, COND), t_cond), toU("cinv", _cinv, 3, (RRnpcsp, RR_ZR, COND), t_cond), toU("cneg", _cneg, 3, (RRnpcsp, RR_ZR, COND), t_cond), diff --git a/gas/testsuite/gas/arm/armv8_1-m-pacbti.d b/gas/testsuite/gas/arm/armv8_1-m-pacbti.d new file mode 100644 index 0000000..3c69372 --- /dev/null +++ b/gas/testsuite/gas/arm/armv8_1-m-pacbti.d @@ -0,0 +1,10 @@ +#name: Valid Armv8.1-M pointer authentication and branch target identification extention +#source: armv8_1-m-pacbti.s +#as: -march=armv8.1-m.main +#objdump: -dr --prefix-addresses --show-raw-insn + +.*: +file format .*arm.* + +Disassembly of section .text: +0[0-9a-f]+ <[^>]+> f3af 800f bti +#... diff --git a/gas/testsuite/gas/arm/armv8_1-m-pacbti.s b/gas/testsuite/gas/arm/armv8_1-m-pacbti.s new file mode 100644 index 0000000..38929e3 --- /dev/null +++ b/gas/testsuite/gas/arm/armv8_1-m-pacbti.s @@ -0,0 +1,5 @@ + .syntax unified + .text + .thumb +.Lstart: + bti diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c index 92cd098..1e09699 100644 --- a/opcodes/arm-dis.c +++ b/opcodes/arm-dis.c @@ -4652,6 +4652,11 @@ static const struct opcode16 thumb_opcodes[] = makes heavy use of special-case bit patterns. */ static const struct opcode32 thumb32_opcodes[] = { + /* Arm v8.1-M Mainline Pointer Authentication and Branch Target + Identification Extension. */ + {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN), + 0xf3af800f, 0xffffffff, "bti"}, + /* Armv8.1-M Mainline and Armv8.1-M Mainline Security Extensions instructions. */ {ARM_FEATURE_CORE_HIGH (ARM_EXT2_V8_1M_MAIN), |