arch-arm: gdb support Thumb-2 ISA
From the document*1, we should allow 2,3,4 in kind check function for supporting all kinds of ARM breakpoint. 1. https://sourceware.org/gdb/current/onlinedocs/gdb/ARM-Breakpoint-Kinds.html Change-Id: I82bcb88cfe6e80e7f17cd6bb68a26a45ace7b174 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/54124 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -168,6 +168,20 @@ namespace gem5
|
||||
|
||||
using namespace ArmISA;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
// https://sourceware.org/gdb/current/onlinedocs/gdb/ARM-Breakpoint-Kinds.html
|
||||
enum class ArmBpKind
|
||||
{
|
||||
THUMB = 2,
|
||||
THUMB_2 = 3,
|
||||
ARM = 4,
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
|
||||
static bool
|
||||
tryTranslate(ThreadContext *tc, Addr addr)
|
||||
{
|
||||
@@ -364,8 +378,14 @@ RemoteGDB::gdbRegs()
|
||||
bool
|
||||
RemoteGDB::checkBpKind(size_t kind)
|
||||
{
|
||||
// 2 for Thumb ISA, 4 for ARM ISA.
|
||||
return kind == 2 || kind == 4;
|
||||
switch (ArmBpKind(kind)) {
|
||||
case ArmBpKind::THUMB:
|
||||
case ArmBpKind::THUMB_2:
|
||||
case ArmBpKind::ARM:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace gem5
|
||||
|
||||
Reference in New Issue
Block a user