]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Add RISC-V CHERI register xml files
authorAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>
Fri, 21 Feb 2020 12:27:29 +0000 (12:27 +0000)
committerJohn Baldwin <jhb@FreeBSD.org>
Thu, 13 Oct 2022 18:25:32 +0000 (11:25 -0700)
Co-authored-by: John Baldwin <jhb@FreeBSD.org>
gdb/features/Makefile
gdb/features/riscv/32bit-cheri64.c [new file with mode: 0644]
gdb/features/riscv/32bit-cheri64.xml [new file with mode: 0644]
gdb/features/riscv/64bit-cheri128.c [new file with mode: 0644]
gdb/features/riscv/64bit-cheri128.xml [new file with mode: 0644]

index c18f257cc6263956345abf9c460e0932299daf8f..ce24090ab1c1cfa55c8831d68504bb9cfbc8c95d 100644 (file)
@@ -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 (file)
index 0000000..8c3f5db
--- /dev/null
@@ -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 (file)
index 0000000..d173555
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2018-2019 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.riscv.cheri">
+  <reg name="cnull" bitsize="64" type="data_capability" group="general"/>
+  <reg name="cra" bitsize="64" type="code_capability" group="general"/>
+  <reg name="csp" bitsize="64" type="data_capability" group="general"/>
+  <reg name="cgp" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ctp" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ct0" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ct1" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ct2" bitsize="64" type="data_capability" group="general"/>
+  <reg name="cfp" bitsize="64" type="data_capability" group="general"/>
+  <reg name="cs1" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ca0" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ca1" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ca2" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ca3" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ca4" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ca5" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ca6" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ca7" bitsize="64" type="data_capability" group="general"/>
+  <reg name="cs2" bitsize="64" type="data_capability" group="general"/>
+  <reg name="cs3" bitsize="64" type="data_capability" group="general"/>
+  <reg name="cs4" bitsize="64" type="data_capability" group="general"/>
+  <reg name="cs5" bitsize="64" type="data_capability" group="general"/>
+  <reg name="cs6" bitsize="64" type="data_capability" group="general"/>
+  <reg name="cs7" bitsize="64" type="data_capability" group="general"/>
+  <reg name="cs8" bitsize="64" type="data_capability" group="general"/>
+  <reg name="cs9" bitsize="64" type="data_capability" group="general"/>
+  <reg name="cs10" bitsize="64" type="data_capability" group="general"/>
+  <reg name="cs11" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ct3" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ct4" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ct5" bitsize="64" type="data_capability" group="general"/>
+  <reg name="ct6" bitsize="64" type="data_capability" group="general"/>
+
+  <reg name="pcc" bitsize="64" type="code_capability" group="general"/>
+  <reg name="ddc" bitsize="64" type="data_capability" group="general"/>
+</feature>
diff --git a/gdb/features/riscv/64bit-cheri128.c b/gdb/features/riscv/64bit-cheri128.c
new file mode 100644 (file)
index 0000000..7baf0dc
--- /dev/null
@@ -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 (file)
index 0000000..a409fed
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2018-2019 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.riscv.cheri">
+  <reg name="cnull" bitsize="128" type="data_capability" group="general"/>
+  <reg name="cra" bitsize="128" type="code_capability" group="general"/>
+  <reg name="csp" bitsize="128" type="data_capability" group="general"/>
+  <reg name="cgp" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ctp" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ct0" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ct1" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ct2" bitsize="128" type="data_capability" group="general"/>
+  <reg name="cfp" bitsize="128" type="data_capability" group="general"/>
+  <reg name="cs1" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ca0" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ca1" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ca2" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ca3" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ca4" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ca5" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ca6" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ca7" bitsize="128" type="data_capability" group="general"/>
+  <reg name="cs2" bitsize="128" type="data_capability" group="general"/>
+  <reg name="cs3" bitsize="128" type="data_capability" group="general"/>
+  <reg name="cs4" bitsize="128" type="data_capability" group="general"/>
+  <reg name="cs5" bitsize="128" type="data_capability" group="general"/>
+  <reg name="cs6" bitsize="128" type="data_capability" group="general"/>
+  <reg name="cs7" bitsize="128" type="data_capability" group="general"/>
+  <reg name="cs8" bitsize="128" type="data_capability" group="general"/>
+  <reg name="cs9" bitsize="128" type="data_capability" group="general"/>
+  <reg name="cs10" bitsize="128" type="data_capability" group="general"/>
+  <reg name="cs11" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ct3" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ct4" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ct5" bitsize="128" type="data_capability" group="general"/>
+  <reg name="ct6" bitsize="128" type="data_capability" group="general"/>
+
+  <reg name="pcc" bitsize="128" type="code_capability" group="general"/>
+  <reg name="ddc" bitsize="128" type="data_capability" group="general"/>
+</feature>