From: Luis Machado Date: Thu, 26 Mar 2020 14:01:39 +0000 (-0300) Subject: [General] Add target description support for capability types X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4e1fa8e215f8c15c74d60cf14aa259935a7c39db;p=thirdparty%2Fbinutils-gdb.git [General] Add target description support for capability types 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 * target-descriptions.c (make_gdb_type): Handle new capability types. gdbsupport/ChangeLog: 2020-10-20 Luis Machado * tdesc.cc (tdesc_predefined_types): Add new capability types. * tdesc.h (tdesc_type_kind) : New fields. --- diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c index 7c380cdb60f..49bf62e7dd1 100644 --- a/gdb/target-descriptions.c +++ b/gdb/target-descriptions.c @@ -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 ()); diff --git a/gdbsupport/tdesc.cc b/gdbsupport/tdesc.cc index 4d41d0b168a..1d15a3df2ca 100644 --- a/gdbsupport/tdesc.cc +++ b/gdbsupport/tdesc.cc @@ -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 }, diff --git a/gdbsupport/tdesc.h b/gdbsupport/tdesc.h index 403aa2c3d19..212633b0b6e 100644 --- a/gdbsupport/tdesc.h +++ b/gdbsupport/tdesc.h @@ -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,