summaryrefslogtreecommitdiff
path: root/src/core/gdbstub/gdbstub.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2016-12-22 11:47:44 -0500
committerGravatar GitHub2016-12-22 11:47:44 -0500
commitaa47af7fb6efd0bda54cca2373ed978e538f6d61 (patch)
tree93d96872603f64925cd632f27bb5c7046cadeedf /src/core/gdbstub/gdbstub.cpp
parentMerge pull request #2285 from mailwl/csnd-format (diff)
parentThreadContext: Move from "core" to "arm_interface". (diff)
downloadyuzu-aa47af7fb6efd0bda54cca2373ed978e538f6d61.tar.gz
yuzu-aa47af7fb6efd0bda54cca2373ed978e538f6d61.tar.xz
yuzu-aa47af7fb6efd0bda54cca2373ed978e538f6d61.zip
Merge pull request #2343 from bunnei/core-cleanup
Core: Top-level consolidate & misc cleanup
Diffstat (limited to 'src/core/gdbstub/gdbstub.cpp')
-rw-r--r--src/core/gdbstub/gdbstub.cpp42
1 files changed, 21 insertions, 21 deletions
diff --git a/src/core/gdbstub/gdbstub.cpp b/src/core/gdbstub/gdbstub.cpp
index f96cbde64..d88e25073 100644
--- a/src/core/gdbstub/gdbstub.cpp
+++ b/src/core/gdbstub/gdbstub.cpp
@@ -35,6 +35,7 @@
35#include "core/arm/arm_interface.h" 35#include "core/arm/arm_interface.h"
36#include "core/core.h" 36#include "core/core.h"
37#include "core/gdbstub/gdbstub.h" 37#include "core/gdbstub/gdbstub.h"
38#include "core/loader/loader.h"
38#include "core/memory.h" 39#include "core/memory.h"
39 40
40const int GDB_BUFFER_SIZE = 10000; 41const int GDB_BUFFER_SIZE = 10000;
@@ -449,9 +450,9 @@ static void SendSignal(u32 signal) {
449 450
450 latest_signal = signal; 451 latest_signal = signal;
451 452
452 std::string buffer = Common::StringFromFormat("T%02x%02x:%08x;%02x:%08x;", latest_signal, 15, 453 std::string buffer =
453 htonl(Core::g_app_core->GetPC()), 13, 454 Common::StringFromFormat("T%02x%02x:%08x;%02x:%08x;", latest_signal, 15,
454 htonl(Core::g_app_core->GetReg(13))); 455 htonl(Core::CPU().GetPC()), 13, htonl(Core::CPU().GetReg(13)));
455 LOG_DEBUG(Debug_GDBStub, "Response: %s", buffer.c_str()); 456 LOG_DEBUG(Debug_GDBStub, "Response: %s", buffer.c_str());
456 SendReply(buffer.c_str()); 457 SendReply(buffer.c_str());
457} 458}
@@ -538,15 +539,15 @@ static void ReadRegister() {
538 } 539 }
539 540
540 if (id <= R15_REGISTER) { 541 if (id <= R15_REGISTER) {
541 IntToGdbHex(reply, Core::g_app_core->GetReg(id)); 542 IntToGdbHex(reply, Core::CPU().GetReg(id));
542 } else if (id == CPSR_REGISTER) { 543 } else if (id == CPSR_REGISTER) {
543 IntToGdbHex(reply, Core::g_app_core->GetCPSR()); 544 IntToGdbHex(reply, Core::CPU().GetCPSR());
544 } else if (id > CPSR_REGISTER && id < FPSCR_REGISTER) { 545 } else if (id > CPSR_REGISTER && id < FPSCR_REGISTER) {
545 IntToGdbHex(reply, Core::g_app_core->GetVFPReg( 546 IntToGdbHex(reply, Core::CPU().GetVFPReg(
546 id - CPSR_REGISTER - 547 id - CPSR_REGISTER -
547 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
548 } else if (id == FPSCR_REGISTER) { 549 } else if (id == FPSCR_REGISTER) {
549 IntToGdbHex(reply, Core::g_app_core->GetVFPSystemReg(VFP_FPSCR)); // Get FPSCR 550 IntToGdbHex(reply, Core::CPU().GetVFPSystemReg(VFP_FPSCR)); // Get FPSCR
550 IntToGdbHex(reply + 8, 0); 551 IntToGdbHex(reply + 8, 0);
551 } else { 552 } else {
552 return SendReply("E01"); 553 return SendReply("E01");
@@ -563,22 +564,22 @@ static void ReadRegisters() {
563 u8* bufptr = buffer; 564 u8* bufptr = buffer;
564 565
565 for (int reg = 0; reg <= R15_REGISTER; reg++) { 566 for (int reg = 0; reg <= R15_REGISTER; reg++) {
566 IntToGdbHex(bufptr + reg * CHAR_BIT, Core::g_app_core->GetReg(reg)); 567 IntToGdbHex(bufptr + reg * CHAR_BIT, Core::CPU().GetReg(reg));
567 } 568 }
568 569
569 bufptr += (16 * CHAR_BIT); 570 bufptr += (16 * CHAR_BIT);
570 571
571 IntToGdbHex(bufptr, Core::g_app_core->GetCPSR()); 572 IntToGdbHex(bufptr, Core::CPU().GetCPSR());
572 573
573 bufptr += CHAR_BIT; 574 bufptr += CHAR_BIT;
574 575
575 for (int reg = 0; reg <= 31; reg++) { 576 for (int reg = 0; reg <= 31; reg++) {
576 IntToGdbHex(bufptr + reg * CHAR_BIT, Core::g_app_core->GetVFPReg(reg)); 577 IntToGdbHex(bufptr + reg * CHAR_BIT, Core::CPU().GetVFPReg(reg));
577 } 578 }
578 579
579 bufptr += (32 * CHAR_BIT); 580 bufptr += (32 * CHAR_BIT);
580 581
581 IntToGdbHex(bufptr, Core::g_app_core->GetVFPSystemReg(VFP_FPSCR)); 582 IntToGdbHex(bufptr, Core::CPU().GetVFPSystemReg(VFP_FPSCR));
582 583
583 SendReply(reinterpret_cast<char*>(buffer)); 584 SendReply(reinterpret_cast<char*>(buffer));
584} 585}
@@ -595,13 +596,13 @@ static void WriteRegister() {
595 } 596 }
596 597
597 if (id <= R15_REGISTER) { 598 if (id <= R15_REGISTER) {
598 Core::g_app_core->SetReg(id, GdbHexToInt(buffer_ptr)); 599 Core::CPU().SetReg(id, GdbHexToInt(buffer_ptr));
599 } else if (id == CPSR_REGISTER) { 600 } else if (id == CPSR_REGISTER) {
600 Core::g_app_core->SetCPSR(GdbHexToInt(buffer_ptr)); 601 Core::CPU().SetCPSR(GdbHexToInt(buffer_ptr));
601 } else if (id > CPSR_REGISTER && id < FPSCR_REGISTER) { 602 } else if (id > CPSR_REGISTER && id < FPSCR_REGISTER) {
602 Core::g_app_core->SetVFPReg(id - CPSR_REGISTER - 1, GdbHexToInt(buffer_ptr)); 603 Core::CPU().SetVFPReg(id - CPSR_REGISTER - 1, GdbHexToInt(buffer_ptr));
603 } else if (id == FPSCR_REGISTER) { 604 } else if (id == FPSCR_REGISTER) {
604 Core::g_app_core->SetVFPSystemReg(VFP_FPSCR, GdbHexToInt(buffer_ptr)); 605 Core::CPU().SetVFPSystemReg(VFP_FPSCR, GdbHexToInt(buffer_ptr));
605 } else { 606 } else {
606 return SendReply("E01"); 607 return SendReply("E01");
607 } 608 }
@@ -618,20 +619,19 @@ static void WriteRegisters() {
618 619
619 for (int i = 0, reg = 0; reg <= FPSCR_REGISTER; i++, reg++) { 620 for (int i = 0, reg = 0; reg <= FPSCR_REGISTER; i++, reg++) {
620 if (reg <= R15_REGISTER) { 621 if (reg <= R15_REGISTER) {
621 Core::g_app_core->SetReg(reg, GdbHexToInt(buffer_ptr + i * CHAR_BIT)); 622 Core::CPU().SetReg(reg, GdbHexToInt(buffer_ptr + i * CHAR_BIT));
622 } else if (reg == CPSR_REGISTER) { 623 } else if (reg == CPSR_REGISTER) {
623 Core::g_app_core->SetCPSR(GdbHexToInt(buffer_ptr + i * CHAR_BIT)); 624 Core::CPU().SetCPSR(GdbHexToInt(buffer_ptr + i * CHAR_BIT));
624 } else if (reg == CPSR_REGISTER - 1) { 625 } else if (reg == CPSR_REGISTER - 1) {
625 // Dummy FPA register, ignore 626 // Dummy FPA register, ignore
626 } else if (reg < CPSR_REGISTER) { 627 } else if (reg < CPSR_REGISTER) {
627 // Dummy FPA registers, ignore 628 // Dummy FPA registers, ignore
628 i += 2; 629 i += 2;
629 } else if (reg > CPSR_REGISTER && reg < FPSCR_REGISTER) { 630 } else if (reg > CPSR_REGISTER && reg < FPSCR_REGISTER) {
630 Core::g_app_core->SetVFPReg(reg - CPSR_REGISTER - 1, 631 Core::CPU().SetVFPReg(reg - CPSR_REGISTER - 1, GdbHexToInt(buffer_ptr + i * CHAR_BIT));
631 GdbHexToInt(buffer_ptr + i * CHAR_BIT));
632 i++; // Skip padding 632 i++; // Skip padding
633 } else if (reg == FPSCR_REGISTER) { 633 } else if (reg == FPSCR_REGISTER) {
634 Core::g_app_core->SetVFPSystemReg(VFP_FPSCR, GdbHexToInt(buffer_ptr + i * CHAR_BIT)); 634 Core::CPU().SetVFPSystemReg(VFP_FPSCR, GdbHexToInt(buffer_ptr + i * CHAR_BIT));
635 } 635 }
636 } 636 }
637 637
@@ -908,7 +908,7 @@ void ToggleServer(bool status) {
908 server_enabled = status; 908 server_enabled = status;
909 909
910 // Start server 910 // Start server
911 if (!IsConnected() && Core::g_sys_core != nullptr) { 911 if (!IsConnected() && Core::System().GetInstance().IsPoweredOn()) {
912 Init(); 912 Init();
913 } 913 }
914 } else { 914 } else {