[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 42/44] Hexagon (gdbstub): fix p3:0 read and write via stub
|
From: |
Taylor Simpson |
|
Subject: |
[PULL 42/44] Hexagon (gdbstub): fix p3:0 read and write via stub |
|
Date: |
Fri, 12 May 2023 14:47:04 -0700 |
From: Brian Cain <bcain@quicinc.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>
Co-authored-by: Sid Manning <sidneym@quicinc.com>
Signed-off-by: Sid Manning <sidneym@quicinc.com>
Co-authored-by: Matheus Tavares Bernardino <quic_mathbern@quicinc.com>
Signed-off-by: Matheus Tavares Bernardino <quic_mathbern@quicinc.com>
Reviewed-by: Taylor Simpson <tsimpson@quicinc.com>
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com>
Message-Id:
<32e7de567cdae184a6781644454bbb19916c955b.1683214375.git.quic_mathbern@quicinc.com>
---
target/hexagon/gdbstub.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/target/hexagon/gdbstub.c b/target/hexagon/gdbstub.c
index 46083da620..a06fed9f18 100644
--- a/target/hexagon/gdbstub.c
+++ b/target/hexagon/gdbstub.c
@@ -25,6 +25,14 @@ int hexagon_gdb_read_register(CPUState *cs, GByteArray
*mem_buf, int n)
HexagonCPU *cpu = HEXAGON_CPU(cs);
CPUHexagonState *env = &cpu->env;
+ if (n == HEX_REG_P3_0_ALIASED) {
+ uint32_t p3_0 = 0;
+ for (int i = 0; i < NUM_PREGS; i++) {
+ p3_0 = deposit32(p3_0, i * 8, 8, env->pred[i]);
+ }
+ return gdb_get_regl(mem_buf, p3_0);
+ }
+
if (n < TOTAL_PER_THREAD_REGS) {
return gdb_get_regl(mem_buf, env->gpr[n]);
}
@@ -37,6 +45,14 @@ int hexagon_gdb_write_register(CPUState *cs, uint8_t
*mem_buf, int n)
HexagonCPU *cpu = HEXAGON_CPU(cs);
CPUHexagonState *env = &cpu->env;
+ if (n == HEX_REG_P3_0_ALIASED) {
+ uint32_t p3_0 = ldtul_p(mem_buf);
+ for (int i = 0; i < NUM_PREGS; i++) {
+ env->pred[i] = extract32(p3_0, i * 8, 8);
+ }
+ return sizeof(target_ulong);
+ }
+
if (n < TOTAL_PER_THREAD_REGS) {
env->gpr[n] = ldtul_p(mem_buf);
return sizeof(target_ulong);
--
2.25.1
- [PULL 15/44] Hexagon (target/hexagon) Remove log_reg_write from op_helper.[ch], (continued)
- [PULL 15/44] Hexagon (target/hexagon) Remove log_reg_write from op_helper.[ch], Taylor Simpson, 2023/05/12
- [PULL 25/44] Hexagon (target/hexagon) Make special new_value for USR, Taylor Simpson, 2023/05/12
- [PULL 18/44] Hexagon (target/hexagon) Don't overlap dest writes with source reads, Taylor Simpson, 2023/05/12
- [PULL 26/44] Hexagon (target/hexagon) Move new_value to DisasContext, Taylor Simpson, 2023/05/12
- [PULL 10/44] meson.build Add CONFIG_HEXAGON_IDEF_PARSER, Taylor Simpson, 2023/05/12
- [PULL 19/44] Hexagon (target/hexagon) Mark registers as read during packet analysis, Taylor Simpson, 2023/05/12
- [PULL 20/44] Hexagon (target/hexagon) Short-circuit packet register writes, Taylor Simpson, 2023/05/12
- [PULL 29/44] Hexagon (target/hexagon) Move pkt_has_store_s1 to DisasContext, Taylor Simpson, 2023/05/12
- [PULL 44/44] Hexagon (linux-user/hexagon): handle breakpoints, Taylor Simpson, 2023/05/12
- [PULL 40/44] gdbstub: add test for untimely stop-reply packets, Taylor Simpson, 2023/05/12
- [PULL 42/44] Hexagon (gdbstub): fix p3:0 read and write via stub,
Taylor Simpson <=
- [PULL 41/44] Hexagon: add core gdbstub xml data for LLDB, Taylor Simpson, 2023/05/12
- [PULL 43/44] Hexagon (gdbstub): add HVX support, Taylor Simpson, 2023/05/12
- Re: [PULL 00/44] Hexagon update, Richard Henderson, 2023/05/13