From 4e1fa8e215f8c15c74d60cf14aa259935a7c39db Mon Sep 17 00:00:00 2001 From: Luis Machado Date: Thu, 26 Mar 2020 11:01:39 -0300 Subject: [PATCH] [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. --- gdb/target-descriptions.c | 14 ++++++++++++++ gdbsupport/tdesc.cc | 4 ++++ gdbsupport/tdesc.h | 4 ++++ 3 files changed, 22 insertions(+) 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, -- 2.47.2