From: Alex Richardson Date: Fri, 21 Feb 2020 12:27:29 +0000 (+0000) Subject: Add RISC-V CHERI register xml files X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d6a05f2cbf60ea5645942030d69e93e76c6bcb08;p=thirdparty%2Fbinutils-gdb.git Add RISC-V CHERI register xml files Co-authored-by: John Baldwin --- diff --git a/gdb/features/Makefile b/gdb/features/Makefile index c18f257cc62..ce24090ab1c 100644 --- a/gdb/features/Makefile +++ b/gdb/features/Makefile @@ -235,8 +235,10 @@ FEATURE_XMLFILES = aarch64-core.xml \ riscv/rv32e-xregs.xml \ riscv/32bit-cpu.xml \ riscv/32bit-fpu.xml \ + riscv/32bit-cheri64.xml \ riscv/64bit-cpu.xml \ riscv/64bit-fpu.xml \ + riscv/64bit-cheri128.xml \ tic6x-c6xp.xml \ tic6x-core.xml \ tic6x-gp.xml diff --git a/gdb/features/riscv/32bit-cheri64.c b/gdb/features/riscv/32bit-cheri64.c new file mode 100644 index 00000000000..8c3f5db922d --- /dev/null +++ b/gdb/features/riscv/32bit-cheri64.c @@ -0,0 +1,47 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: 32bit-cheri64.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_riscv_32bit_cheri64 (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.riscv.cheri"); + tdesc_create_reg (feature, "cnull", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "cra", regnum++, 1, "general", 64, "code_capability"); + tdesc_create_reg (feature, "csp", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "cgp", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ctp", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ct0", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ct1", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ct2", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "cfp", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "cs1", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ca0", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ca1", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ca2", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ca3", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ca4", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ca5", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ca6", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ca7", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "cs2", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "cs3", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "cs4", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "cs5", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "cs6", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "cs7", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "cs8", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "cs9", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "cs10", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "cs11", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ct3", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ct4", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ct5", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "ct6", regnum++, 1, "general", 64, "data_capability"); + tdesc_create_reg (feature, "pcc", regnum++, 1, "general", 64, "code_capability"); + tdesc_create_reg (feature, "ddc", regnum++, 1, "general", 64, "data_capability"); + return regnum; +} diff --git a/gdb/features/riscv/32bit-cheri64.xml b/gdb/features/riscv/32bit-cheri64.xml new file mode 100644 index 00000000000..d17355576a1 --- /dev/null +++ b/gdb/features/riscv/32bit-cheri64.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb/features/riscv/64bit-cheri128.c b/gdb/features/riscv/64bit-cheri128.c new file mode 100644 index 00000000000..7baf0dc36a3 --- /dev/null +++ b/gdb/features/riscv/64bit-cheri128.c @@ -0,0 +1,47 @@ +/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro: + Original: 64bit-cheri128.xml */ + +#include "gdbsupport/tdesc.h" + +static int +create_feature_riscv_64bit_cheri128 (struct target_desc *result, long regnum) +{ + struct tdesc_feature *feature; + + feature = tdesc_create_feature (result, "org.gnu.gdb.riscv.cheri"); + tdesc_create_reg (feature, "cnull", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "cra", regnum++, 1, "general", 128, "code_capability"); + tdesc_create_reg (feature, "csp", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "cgp", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ctp", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ct0", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ct1", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ct2", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "cfp", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "cs1", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ca0", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ca1", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ca2", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ca3", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ca4", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ca5", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ca6", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ca7", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "cs2", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "cs3", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "cs4", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "cs5", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "cs6", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "cs7", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "cs8", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "cs9", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "cs10", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "cs11", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ct3", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ct4", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ct5", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "ct6", regnum++, 1, "general", 128, "data_capability"); + tdesc_create_reg (feature, "pcc", regnum++, 1, "general", 128, "code_capability"); + tdesc_create_reg (feature, "ddc", regnum++, 1, "general", 128, "data_capability"); + return regnum; +} diff --git a/gdb/features/riscv/64bit-cheri128.xml b/gdb/features/riscv/64bit-cheri128.xml new file mode 100644 index 00000000000..a409fed643e --- /dev/null +++ b/gdb/features/riscv/64bit-cheri128.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +