aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorSrinath Parvathaneni <srinath.parvathaneni@arm.com>2022-11-14 15:13:17 +0000
committerSrinath Parvathaneni <srinath.parvathaneni@arm.com>2022-11-14 15:13:21 +0000
commit9b1c7dc3a041b6d37f9c80b46778c98c157b393f (patch)
tree5534b49d5f85618281eb00d2633b0fcf443ce35a /gas/config
parentb62fb887c69a482e0d4e7b9f7ded7384f8c4e584 (diff)
downloadgdb-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.c17
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 },