[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [PATCH 5/7] Hexagon (gdbstub): fix p3:0 read and write via stub
From: |
Taylor Simpson |
Subject: |
RE: [PATCH 5/7] Hexagon (gdbstub): fix p3:0 read and write via stub |
Date: |
Thu, 6 Apr 2023 20:14:50 +0000 |
> -----Original Message-----
> From: Matheus Bernardino (QUIC) <quic_mathbern@quicinc.com>
> Sent: Thursday, April 6, 2023 2:30 PM
> To: qemu-devel@nongnu.org
> Cc: Brian Cain <bcain@quicinc.com>; Taylor Simpson
> <tsimpson@quicinc.com>; alex.bennee@linaro.org; f4bug@amsat.org;
> peter.maydell@linaro.org; Sid Manning <sidneym@quicinc.com>
> Subject: [PATCH 5/7] Hexagon (gdbstub): fix p3:0 read and write via stub
>
> From: Brian Cain <bcain@quicinc.com>
>
> Co-authored-by: Sid Manning <sidneym@quicinc.com>
> Signed-off-by: Sid Manning <sidneym@quicinc.com>
> Signed-off-by: Brian Cain <bcain@quicinc.com>
> Co-authored-by: Matheus Tavares Bernardino
> <quic_mathbern@quicinc.com>
> Signed-off-by: Matheus Tavares Bernardino <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);
Reviewed-by: Taylor Simpson <tsimpson@quicinc.com>
- [PATCH 0/7] Hexagon: add lldb support, Matheus Tavares Bernardino, 2023/04/06
- [PATCH 1/7] gdbstub: only send stop-reply packets when allowed to, Matheus Tavares Bernardino, 2023/04/06
- [PATCH 2/7] gdbstub: add test for untimely stop-reply packets, Matheus Tavares Bernardino, 2023/04/06
- [PATCH 3/7] gdbstub: add support for the qRegisterInfo query, Matheus Tavares Bernardino, 2023/04/06
- [PATCH 6/7] Hexagon (gdbstub): add HVX support, Matheus Tavares Bernardino, 2023/04/06
- [PATCH 7/7] Hexagon (linux-user/hexagon): handle breakpoints, Matheus Tavares Bernardino, 2023/04/06
- [PATCH 5/7] Hexagon (gdbstub): fix p3:0 read and write via stub, Matheus Tavares Bernardino, 2023/04/06
- RE: [PATCH 5/7] Hexagon (gdbstub): fix p3:0 read and write via stub,
Taylor Simpson <=
- [PATCH 4/7] Hexagon: support qRegisterInfo at gdbstub, Matheus Tavares Bernardino, 2023/04/06