]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[Morello] Add 'C' augmentation character support
authorLuis Machado <luis.machado@arm.com>
Thu, 8 Oct 2020 17:06:35 +0000 (14:06 -0300)
committerJohn Baldwin <jhb@FreeBSD.org>
Thu, 1 Sep 2022 22:53:22 +0000 (15:53 -0700)
Handle the Morello 'C' augmentation character. It is not used yet, but it
is acknowledged.

gdb/ChangeLog:

2020-10-20  Luis Machado  <luis.machado@arm.com>

* dwarf2/frame.c (struct dwarf2_cie) <pure_cap>: New field.
(decode_frame_entry_1): Handle the 'C' augmentation character.

gdb/dwarf2/frame.c

index 0b7ed2c63fdc8227ca1b3f61a4d1be4b57850c00..4fdea6d3967e0db728d1ab9317493d2d99e568b5 100644 (file)
@@ -97,6 +97,9 @@ struct dwarf2_cie
   /* True if an 'S' augmentation existed.  */
   unsigned char signal_frame;
 
+  /* True if a 'C' augmentation was specified.  */
+  unsigned char pure_cap;
+
   /* The version recorded in the CIE.  */
   unsigned char version;
 
@@ -1841,6 +1844,15 @@ decode_frame_entry_1 (struct gdbarch *gdbarch,
              augmentation++;
            }
 
+         /* "C" indicates that the default unwind rules for this CIE should be
+            initialized in accordance with the pure capability procedure call
+            standard.  */
+         else if (*augmentation == 'C')
+           {
+             cie->pure_cap = 1;
+             augmentation++;
+           }
+
          /* Otherwise we have an unknown augmentation.  Assume that either
             there is no augmentation data, or we saw a 'z' prefix.  */
          else