From 912de786a490555b5ac53d1d092e0536d0932bc1 Mon Sep 17 00:00:00 2001 From: Tim Newsome Date: Fri, 20 Oct 2023 15:37:28 -0700 Subject: [PATCH] Revert "target/riscv: Reject size 2 soft breakpoints when C extension not supported" --- src/target/riscv/riscv.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/target/riscv/riscv.c b/src/target/riscv/riscv.c index 1a2f35e70..1be815b20 100644 --- a/src/target/riscv/riscv.c +++ b/src/target/riscv/riscv.c @@ -1237,17 +1237,15 @@ static int riscv_add_breakpoint(struct target *target, struct breakpoint *breakp LOG_TARGET_DEBUG(target, "@0x%" TARGET_PRIxADDR, breakpoint->address); assert(breakpoint); if (breakpoint->type == BKPT_SOFT) { - const bool c_extension_supported = riscv_supports_extension(target, 'C'); - if (!(breakpoint->length == 4 || (breakpoint->length == 2 && c_extension_supported))) { - LOG_TARGET_ERROR(target, "Invalid breakpoint length %d, supported lengths: %s", breakpoint->length, - c_extension_supported ? "2, 4" : "4"); + /** @todo check RVC for size/alignment */ + if (!(breakpoint->length == 4 || breakpoint->length == 2)) { + LOG_TARGET_ERROR(target, "Invalid breakpoint length %d", breakpoint->length); return ERROR_FAIL; } - const unsigned int required_align = c_extension_supported ? 2 : 4; - if ((breakpoint->address % required_align) != 0) { - LOG_TARGET_ERROR(target, "Invalid breakpoint alignment for address 0x%" TARGET_PRIxADDR - ", required alignment: %u", breakpoint->address, required_align); + if (0 != (breakpoint->address % 2)) { + LOG_TARGET_ERROR(target, "Invalid breakpoint alignment for address 0x%" TARGET_PRIxADDR, + breakpoint->address); return ERROR_FAIL; }