summaryrefslogtreecommitdiff
path: root/src/core/gdbstub/gdbstub.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/gdbstub/gdbstub.cpp')
-rw-r--r--src/core/gdbstub/gdbstub.cpp39
1 files changed, 19 insertions, 20 deletions
diff --git a/src/core/gdbstub/gdbstub.cpp b/src/core/gdbstub/gdbstub.cpp
index c75d5fc5e..d88e25073 100644
--- a/src/core/gdbstub/gdbstub.cpp
+++ b/src/core/gdbstub/gdbstub.cpp
@@ -450,9 +450,9 @@ static void SendSignal(u32 signal) {
450 450
451 latest_signal = signal; 451 latest_signal = signal;
452 452
453 std::string buffer = Common::StringFromFormat("T%02x%02x:%08x;%02x:%08x;", latest_signal, 15, 453 std::string buffer =
454 htonl(Core::AppCore().GetPC()), 13, 454 Common::StringFromFormat("T%02x%02x:%08x;%02x:%08x;", latest_signal, 15,
455 htonl(Core::AppCore().GetReg(13))); 455 htonl(Core::CPU().GetPC()), 13, htonl(Core::CPU().GetReg(13)));
456 LOG_DEBUG(Debug_GDBStub, "Response: %s", buffer.c_str()); 456 LOG_DEBUG(Debug_GDBStub, "Response: %s", buffer.c_str());
457 SendReply(buffer.c_str()); 457 SendReply(buffer.c_str());
458} 458}
@@ -539,15 +539,15 @@ static void ReadRegister() {
539 } 539 }
540 540
541 if (id <= R15_REGISTER) { 541 if (id <= R15_REGISTER) {
542 IntToGdbHex(reply, Core::AppCore().GetReg(id)); 542 IntToGdbHex(reply, Core::CPU().GetReg(id));
543 } else if (id == CPSR_REGISTER) { 543 } else if (id == CPSR_REGISTER) {
544 IntToGdbHex(reply, Core::AppCore().GetCPSR()); 544 IntToGdbHex(reply, Core::CPU().GetCPSR());
545 } else if (id > CPSR_REGISTER && id < FPSCR_REGISTER) { 545 } else if (id > CPSR_REGISTER && id < FPSCR_REGISTER) {
546 IntToGdbHex(reply, Core::AppCore().GetVFPReg( 546 IntToGdbHex(reply, Core::CPU().GetVFPReg(
547 id - CPSR_REGISTER - 547 id - CPSR_REGISTER -
548 1)); // VFP registers should start at 26, so one after CSPR_REGISTER 548 1)); // VFP registers should start at 26, so one after CSPR_REGISTER
549 } else if (id == FPSCR_REGISTER) { 549 } else if (id == FPSCR_REGISTER) {
550 IntToGdbHex(reply, Core::AppCore().GetVFPSystemReg(VFP_FPSCR)); // Get FPSCR 550 IntToGdbHex(reply, Core::CPU().GetVFPSystemReg(VFP_FPSCR)); // Get FPSCR
551 IntToGdbHex(reply + 8, 0); 551 IntToGdbHex(reply + 8, 0);
552 } else { 552 } else {
553 return SendReply("E01"); 553 return SendReply("E01");
@@ -564,22 +564,22 @@ static void ReadRegisters() {
564 u8* bufptr = buffer; 564 u8* bufptr = buffer;
565 565
566 for (int reg = 0; reg <= R15_REGISTER; reg++) { 566 for (int reg = 0; reg <= R15_REGISTER; reg++) {
567 IntToGdbHex(bufptr + reg * CHAR_BIT, Core::AppCore().GetReg(reg)); 567 IntToGdbHex(bufptr + reg * CHAR_BIT, Core::CPU().GetReg(reg));
568 } 568 }
569 569
570 bufptr += (16 * CHAR_BIT); 570 bufptr += (16 * CHAR_BIT);
571 571
572 IntToGdbHex(bufptr, Core::AppCore().GetCPSR()); 572 IntToGdbHex(bufptr, Core::CPU().GetCPSR());
573 573
574 bufptr += CHAR_BIT; 574 bufptr += CHAR_BIT;
575 575
576 for (int reg = 0; reg <= 31; reg++) { 576 for (int reg = 0; reg <= 31; reg++) {
577 IntToGdbHex(bufptr + reg * CHAR_BIT, Core::AppCore().GetVFPReg(reg)); 577 IntToGdbHex(bufptr + reg * CHAR_BIT, Core::CPU().GetVFPReg(reg));
578 } 578 }
579 579
580 bufptr += (32 * CHAR_BIT); 580 bufptr += (32 * CHAR_BIT);
581 581
582 IntToGdbHex(bufptr, Core::AppCore().GetVFPSystemReg(VFP_FPSCR)); 582 IntToGdbHex(bufptr, Core::CPU().GetVFPSystemReg(VFP_FPSCR));
583 583
584 SendReply(reinterpret_cast<char*>(buffer)); 584 SendReply(reinterpret_cast<char*>(buffer));
585} 585}
@@ -596,13 +596,13 @@ static void WriteRegister() {
596 } 596 }
597 597
598 if (id <= R15_REGISTER) { 598 if (id <= R15_REGISTER) {
599 Core::AppCore().SetReg(id, GdbHexToInt(buffer_ptr)); 599 Core::CPU().SetReg(id, GdbHexToInt(buffer_ptr));
600 } else if (id == CPSR_REGISTER) { 600 } else if (id == CPSR_REGISTER) {
601 Core::AppCore().SetCPSR(GdbHexToInt(buffer_ptr)); 601 Core::CPU().SetCPSR(GdbHexToInt(buffer_ptr));
602 } else if (id > CPSR_REGISTER && id < FPSCR_REGISTER) { 602 } else if (id > CPSR_REGISTER && id < FPSCR_REGISTER) {
603 Core::AppCore().SetVFPReg(id - CPSR_REGISTER - 1, GdbHexToInt(buffer_ptr)); 603 Core::CPU().SetVFPReg(id - CPSR_REGISTER - 1, GdbHexToInt(buffer_ptr));
604 } else if (id == FPSCR_REGISTER) { 604 } else if (id == FPSCR_REGISTER) {
605 Core::AppCore().SetVFPSystemReg(VFP_FPSCR, GdbHexToInt(buffer_ptr)); 605 Core::CPU().SetVFPSystemReg(VFP_FPSCR, GdbHexToInt(buffer_ptr));
606 } else { 606 } else {
607 return SendReply("E01"); 607 return SendReply("E01");
608 } 608 }
@@ -619,20 +619,19 @@ static void WriteRegisters() {
619 619
620 for (int i = 0, reg = 0; reg <= FPSCR_REGISTER; i++, reg++) { 620 for (int i = 0, reg = 0; reg <= FPSCR_REGISTER; i++, reg++) {
621 if (reg <= R15_REGISTER) { 621 if (reg <= R15_REGISTER) {
622 Core::AppCore().SetReg(reg, GdbHexToInt(buffer_ptr + i * CHAR_BIT)); 622 Core::CPU().SetReg(reg, GdbHexToInt(buffer_ptr + i * CHAR_BIT));
623 } else if (reg == CPSR_REGISTER) { 623 } else if (reg == CPSR_REGISTER) {
624 Core::AppCore().SetCPSR(GdbHexToInt(buffer_ptr + i * CHAR_BIT)); 624 Core::CPU().SetCPSR(GdbHexToInt(buffer_ptr + i * CHAR_BIT));
625 } else if (reg == CPSR_REGISTER - 1) { 625 } else if (reg == CPSR_REGISTER - 1) {
626 // Dummy FPA register, ignore 626 // Dummy FPA register, ignore
627 } else if (reg < CPSR_REGISTER) { 627 } else if (reg < CPSR_REGISTER) {
628 // Dummy FPA registers, ignore 628 // Dummy FPA registers, ignore
629 i += 2; 629 i += 2;
630 } else if (reg > CPSR_REGISTER && reg < FPSCR_REGISTER) { 630 } else if (reg > CPSR_REGISTER && reg < FPSCR_REGISTER) {
631 Core::AppCore().SetVFPReg(reg - CPSR_REGISTER - 1, 631 Core::CPU().SetVFPReg(reg - CPSR_REGISTER - 1, GdbHexToInt(buffer_ptr + i * CHAR_BIT));
632 GdbHexToInt(buffer_ptr + i * CHAR_BIT));
633 i++; // Skip padding 632 i++; // Skip padding
634 } else if (reg == FPSCR_REGISTER) { 633 } else if (reg == FPSCR_REGISTER) {
635 Core::AppCore().SetVFPSystemReg(VFP_FPSCR, GdbHexToInt(buffer_ptr + i * CHAR_BIT)); 634 Core::CPU().SetVFPSystemReg(VFP_FPSCR, GdbHexToInt(buffer_ptr + i * CHAR_BIT));
636 } 635 }
637 } 636 }
638 637