]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[General] Add target description support for capability types
authorLuis Machado <luis.machado@arm.com>
Thu, 26 Mar 2020 14:01:39 +0000 (11:01 -0300)
committerJohn Baldwin <jhb@FreeBSD.org>
Thu, 1 Sep 2022 22:53:22 +0000 (15:53 -0700)
Add new capability types so target descriptions can use them. Then it gets
translated to the underlying type GDB uses.

gdb/ChangeLog:

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

* target-descriptions.c (make_gdb_type): Handle new capability
types.

gdbsupport/ChangeLog:

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

* tdesc.cc (tdesc_predefined_types): Add new capability types.
* tdesc.h (tdesc_type_kind) <TDESC_TYPE_CODE_CAPABILITY>
<TDESC_TYPE_DATA_CAPABILITY, TDESC_TYPE_INTCAP>
<TDESC_TYPE_UINTCAP>: New fields.

gdb/target-descriptions.c
gdbsupport/tdesc.cc
gdbsupport/tdesc.h

index 7c380cdb60ff9b0095e17751165d18123f8801ee..49bf62e7dd12727ebf73788f5f92069230667f22 100644 (file)
@@ -110,6 +110,20 @@ make_gdb_type (struct gdbarch *gdbarch, struct tdesc_type *ttype)
        case TDESC_TYPE_DATA_PTR:
          m_type = builtin_type (m_gdbarch)->builtin_data_ptr;
          return;
+       /* FIXME-Morello: Fix naming of the type according to what the final
+          code will look like.  */
+       case TDESC_TYPE_CODE_CAPABILITY:
+         m_type = builtin_type (m_gdbarch)->builtin_code_addr_capability;
+         return;
+       case TDESC_TYPE_DATA_CAPABILITY:
+         m_type = builtin_type (m_gdbarch)->builtin_data_addr_capability;
+         return;
+       case TDESC_TYPE_INTCAP:
+         m_type = builtin_type (m_gdbarch)->builtin_intcap_t;
+         return;
+       case TDESC_TYPE_UINTCAP:
+         m_type = builtin_type (m_gdbarch)->builtin_uintcap_t;
+         return;
        }
 
       m_type = tdesc_find_type (m_gdbarch, e->name.c_str ());
index 4d41d0b168ad4072a5f05bcc0b6710bc46e3c688..1d15a3df2caaf9ec98c39c885e3c5b7e9ae6706f 100644 (file)
@@ -50,6 +50,10 @@ static tdesc_type_builtin tdesc_predefined_types[] =
   { "uint128", TDESC_TYPE_UINT128 },
   { "code_ptr", TDESC_TYPE_CODE_PTR },
   { "data_ptr", TDESC_TYPE_DATA_PTR },
+  { "code_addr_capability", TDESC_TYPE_CODE_CAPABILITY },
+  { "data_addr_capability", TDESC_TYPE_DATA_CAPABILITY },
+  { "intcap", TDESC_TYPE_INTCAP },
+  { "uintcap", TDESC_TYPE_UINTCAP },
   { "ieee_half", TDESC_TYPE_IEEE_HALF },
   { "ieee_single", TDESC_TYPE_IEEE_SINGLE },
   { "ieee_double", TDESC_TYPE_IEEE_DOUBLE },
index 403aa2c3d19ee8a87e235a91532cefcceb8e4709..212633b0b6e15a3afe56415fdb346b0782676efc 100644 (file)
@@ -168,6 +168,10 @@ enum tdesc_type_kind
   TDESC_TYPE_UINT128,
   TDESC_TYPE_CODE_PTR,
   TDESC_TYPE_DATA_PTR,
+  TDESC_TYPE_CODE_CAPABILITY,
+  TDESC_TYPE_DATA_CAPABILITY,
+  TDESC_TYPE_INTCAP,
+  TDESC_TYPE_UINTCAP,
   TDESC_TYPE_IEEE_HALF,
   TDESC_TYPE_IEEE_SINGLE,
   TDESC_TYPE_IEEE_DOUBLE,