mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
33 lines
1.4 KiB
C++
33 lines
1.4 KiB
C++
#pragma once
|
|
#include "pch.h"
|
|
#include "Debugger/DebugTypes.h"
|
|
|
|
class GbaConsole;
|
|
class LabelManager;
|
|
class EmuSettings;
|
|
class FastString;
|
|
struct GbaCpuState;
|
|
|
|
class GbaDisUtils
|
|
{
|
|
private:
|
|
static void ArmDisassemble(DisassemblyInfo& info, string& out, uint32_t memoryAddr, LabelManager* labelManager, EmuSettings* settings);
|
|
static void ThumbDisassemble(DisassemblyInfo& info, string& out, uint32_t memoryAddr, LabelManager* labelManager, EmuSettings* settings);
|
|
|
|
static void WriteRegList(FastString& str, uint16_t regMask, uint8_t size);
|
|
static void WriteReg(FastString& str, uint8_t reg);
|
|
static void WriteCond(FastString& str, uint32_t opCode);
|
|
|
|
static bool IsArmBranch(uint32_t opCode);
|
|
|
|
public:
|
|
static void GetDisassembly(DisassemblyInfo& info, string& out, uint32_t memoryAddr, LabelManager* labelManager, EmuSettings* settings);
|
|
static EffectiveAddressInfo GetEffectiveAddress(DisassemblyInfo& info, GbaConsole* console, GbaCpuState& state);
|
|
static uint8_t GetOpSize(uint32_t opCode, uint8_t flags);
|
|
static bool IsJumpToSub(uint32_t opCode, uint8_t flags);
|
|
static bool IsReturnInstruction(uint32_t opCode, uint8_t flags);
|
|
static bool IsUnconditionalJump(uint32_t opCode, uint8_t flags);
|
|
static bool IsConditionalJump(uint32_t opCode, uint8_t flags);
|
|
static CdlFlags::CdlFlags GetOpFlags(uint32_t opCode, uint8_t flags, uint32_t pc, uint32_t prevPc);
|
|
static bool IsThumbMode(uint8_t flags);
|
|
};
|