diff options
author | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | 2022-11-14 15:13:17 +0000 |
---|---|---|
committer | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | 2022-11-14 15:13:21 +0000 |
commit | 9b1c7dc3a041b6d37f9c80b46778c98c157b393f (patch) | |
tree | 5534b49d5f85618281eb00d2633b0fcf443ce35a /gas/config | |
parent | b62fb887c69a482e0d4e7b9f7ded7384f8c4e584 (diff) | |
download | gdb-9b1c7dc3a041b6d37f9c80b46778c98c157b393f.zip gdb-9b1c7dc3a041b6d37f9c80b46778c98c157b393f.tar.gz gdb-9b1c7dc3a041b6d37f9c80b46778c98c157b393f.tar.bz2 |
[gas] arm: Add support for new unwinder directive ".pacspval".
This patch adds the assembler support for the new unwinder
directive ".pacspval" and encodes this directives with opcode
"0xb5". This opcode indicates the unwinder to use effective
vsp as modifier for PAC validation.
gas/ChangeLog:
2022-11-07 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
* doc/c-arm.texi: Document directive.
* config/tc-arm.c (s_arm_unwind_pacspval): Define function.
(md_pseudo_table): Add entry for pacspval directive.
* testsuite/gas/arm/ehabi-pacbti-m.d: New test.
* testsuite/gas/arm/ehabi-pacbti-m.s: Likewise.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-arm.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 8864286..8f0e8b0 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -4929,6 +4929,22 @@ s_arm_unwind_pad (int ignored ATTRIBUTE_UNUSED) demand_empty_rest_of_line (); } +/* Parse an unwind_pacspval directive. */ + +static void +s_arm_unwind_pacspval (int ignored ATTRIBUTE_UNUSED) +{ + valueT op; + + if (!unwind.proc_start) + as_bad (MISSING_FNSTART); + + demand_empty_rest_of_line (); + + op = 0xb5; + add_unwind_opcode (op, 1); +} + /* Parse an unwind_setfp directive. */ static void @@ -5205,6 +5221,7 @@ const pseudo_typeS md_pseudo_table[] = { "vsave", s_arm_unwind_save, 1 }, { "movsp", s_arm_unwind_movsp, 0 }, { "pad", s_arm_unwind_pad, 0 }, + { "pacspval", s_arm_unwind_pacspval, 0 }, { "setfp", s_arm_unwind_setfp, 0 }, { "unwind_raw", s_arm_unwind_raw, 0 }, { "eabi_attribute", s_arm_eabi_attribute, 0 }, |