diff options
Diffstat (limited to 'src/core/gdbstub/gdbstub.cpp')
| -rw-r--r-- | src/core/gdbstub/gdbstub.cpp | 39 |
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 | ||