mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 00:59:44 -06:00
Move DolphinQt2 to DolphinQt
This commit is contained in:
72
Source/Core/DolphinQt/Debugger/RegisterColumn.h
Normal file
72
Source/Core/DolphinQt/Debugger/RegisterColumn.h
Normal file
@ -0,0 +1,72 @@
|
||||
// Copyright 2017 Dolphin Emulator Project
|
||||
// Licensed under GPLv2+
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QTableWidgetItem>
|
||||
|
||||
#include <functional>
|
||||
|
||||
#include "Common/CommonTypes.h"
|
||||
|
||||
enum class RegisterType
|
||||
{
|
||||
gpr, // General purpose registers, int (r0-r31)
|
||||
fpr, // Floating point registers, double (f0-f31)
|
||||
ibat, // Instruction BATs (IBAT0-IBAT7)
|
||||
dbat, // Data BATs (DBAT0-DBAT7)
|
||||
tb, // Time base register
|
||||
pc, // Program counter
|
||||
lr, // Link register
|
||||
ctr, // Decremented and incremented by branch and count instructions
|
||||
cr, // Condition register
|
||||
xer, // Integer exception register
|
||||
fpscr, // Floating point status and control register
|
||||
msr, // Machine state register
|
||||
srr, // Machine status save/restore register (SRR0 - SRR1)
|
||||
sr, // Segment register (SR0 - SR15)
|
||||
gqr, // Graphics quantization registers (GQR0 - GQR7)
|
||||
exceptions, // Keeps track of currently triggered exceptions
|
||||
int_mask, // ???
|
||||
int_cause, // ???
|
||||
dsisr, // Defines the cause of data / alignment exceptions
|
||||
dar, // Data adress register
|
||||
pt_hashmask // ???
|
||||
};
|
||||
|
||||
enum class RegisterDisplay
|
||||
{
|
||||
Hex,
|
||||
SInt32,
|
||||
UInt32,
|
||||
Float,
|
||||
Double
|
||||
};
|
||||
|
||||
constexpr int DATA_TYPE = Qt::UserRole;
|
||||
|
||||
class RegisterColumn : public QTableWidgetItem
|
||||
{
|
||||
public:
|
||||
explicit RegisterColumn(RegisterType type, std::function<u64()> get,
|
||||
std::function<void(u64)> set);
|
||||
|
||||
void RefreshValue();
|
||||
|
||||
RegisterDisplay GetDisplay() const;
|
||||
void SetDisplay(RegisterDisplay display);
|
||||
u64 GetValue() const;
|
||||
void SetValue();
|
||||
|
||||
private:
|
||||
void Update();
|
||||
|
||||
RegisterType m_type;
|
||||
|
||||
std::function<u64()> m_get_register;
|
||||
std::function<void(u64)> m_set_register;
|
||||
|
||||
u64 m_value;
|
||||
RegisterDisplay m_display = RegisterDisplay::Hex;
|
||||
};
|
Reference in New Issue
Block a user