Cleaned up more warnings (on warning level 4)
This commit is contained in:
parent
ba27b5e423
commit
9dd62a9998
|
@ -493,9 +493,9 @@ void CLanguage::LoadCurrentStrings ( bool ShowSelectDialog )
|
||||||
if (file == NULL) { return; }
|
if (file == NULL) { return; }
|
||||||
|
|
||||||
//String;
|
//String;
|
||||||
while(!feof(file)){
|
while(!feof(file))
|
||||||
LANG_STR &String = GetNextLangString(file);
|
{
|
||||||
CurrentStrings.insert(String);
|
CurrentStrings.insert(GetNextLangString(file));
|
||||||
}
|
}
|
||||||
fclose(file);
|
fclose(file);
|
||||||
}
|
}
|
||||||
|
@ -866,8 +866,9 @@ stdstr CLanguage::GetLangString ( const char * FileName, LanguageStringID ID )
|
||||||
if (file == NULL) { return stdstr(""); }
|
if (file == NULL) { return stdstr(""); }
|
||||||
|
|
||||||
//String;
|
//String;
|
||||||
while(!feof(file)){
|
while(!feof(file))
|
||||||
LANG_STR &String = GetNextLangString(file);
|
{
|
||||||
|
LANG_STR String = GetNextLangString(file);
|
||||||
if (String.first == ID) {
|
if (String.first == ID) {
|
||||||
fclose(file);
|
fclose(file);
|
||||||
return String.second;
|
return String.second;
|
||||||
|
|
|
@ -63,7 +63,6 @@ void EnterLogOptions(HWND hwndOwner) {
|
||||||
void LoadLogOptions (LOG_OPTIONS * LogOptions, BOOL AlwaysFill) {
|
void LoadLogOptions (LOG_OPTIONS * LogOptions, BOOL AlwaysFill) {
|
||||||
long lResult;
|
long lResult;
|
||||||
HKEY hKeyResults = 0;
|
HKEY hKeyResults = 0;
|
||||||
DWORD Disposition = 0;
|
|
||||||
char String[200];
|
char String[200];
|
||||||
|
|
||||||
sprintf(String,"Software\\N64 Emulation\\%s\\Logging",_Settings->LoadString(Setting_ApplicationName));
|
sprintf(String,"Software\\N64 Emulation\\%s\\Logging",_Settings->LoadString(Setting_ApplicationName));
|
||||||
|
@ -142,7 +141,7 @@ void LoadLogSetting (HKEY hKey,char * String, BOOL * Value) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LRESULT CALLBACK LogGeneralProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
|
LRESULT CALLBACK LogGeneralProc (HWND hDlg, UINT uMsg, WPARAM /*wParam*/, LPARAM lParam) {
|
||||||
switch (uMsg) {
|
switch (uMsg) {
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
if (TempOptions.LogCP0changes) { CheckDlgButton(hDlg,IDC_CP0_WRITE,BST_CHECKED); }
|
if (TempOptions.LogCP0changes) { CheckDlgButton(hDlg,IDC_CP0_WRITE,BST_CHECKED); }
|
||||||
|
@ -574,7 +573,7 @@ void Log_SW (DWORD PC, DWORD VAddr, DWORD Value) {
|
||||||
LogMessage("%08X: Writing 0x%08X to %08X ????",PC, Value, VAddr );
|
LogMessage("%08X: Writing 0x%08X to %08X ????",PC, Value, VAddr );
|
||||||
}
|
}
|
||||||
|
|
||||||
LRESULT CALLBACK LogPifProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
|
LRESULT CALLBACK LogPifProc (HWND hDlg, UINT uMsg, WPARAM /*wParam*/, LPARAM lParam) {
|
||||||
switch (uMsg) {
|
switch (uMsg) {
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
if (TempOptions.LogPRDMAOperations) { CheckDlgButton(hDlg,IDC_SI_DMA,BST_CHECKED); }
|
if (TempOptions.LogPRDMAOperations) { CheckDlgButton(hDlg,IDC_SI_DMA,BST_CHECKED); }
|
||||||
|
@ -599,7 +598,7 @@ LRESULT CALLBACK LogPifProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
LRESULT CALLBACK LogRegProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
|
LRESULT CALLBACK LogRegProc (HWND hDlg, UINT uMsg, WPARAM /*wParam*/, LPARAM lParam) {
|
||||||
switch (uMsg) {
|
switch (uMsg) {
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
if (TempOptions.LogRDRamRegisters) { CheckDlgButton(hDlg,IDC_RDRAM,BST_CHECKED); }
|
if (TempOptions.LogRDRamRegisters) { CheckDlgButton(hDlg,IDC_RDRAM,BST_CHECKED); }
|
||||||
|
|
|
@ -9,7 +9,7 @@ char CommandName[100];
|
||||||
void SetR4300iCommandToStepping ( void ) {
|
void SetR4300iCommandToStepping ( void ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetR4300iCommandViewto ( UINT NewLocation ) {
|
void SetR4300iCommandViewto ( UINT /*NewLocation*/ ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void __cdecl Enter_R4300i_Commands_Window ( void ) {
|
void __cdecl Enter_R4300i_Commands_Window ( void ) {
|
||||||
|
@ -22,7 +22,7 @@ char * LabelName (DWORD Address) {
|
||||||
return strLabelName;
|
return strLabelName;
|
||||||
}
|
}
|
||||||
|
|
||||||
char * R4300iSpecialName ( DWORD OpCode, DWORD PC ) {
|
char * R4300iSpecialName ( DWORD OpCode, DWORD /*PC*/ ) {
|
||||||
OPCODE command;
|
OPCODE command;
|
||||||
command.Hex = OpCode;
|
command.Hex = OpCode;
|
||||||
|
|
||||||
|
|
|
@ -320,7 +320,7 @@ int CCheats::ApplyCheatEntry (CMipsMemory * _MMU, const CODES & CodeEntry, int C
|
||||||
for (i=0; i<numrepeats; i++) {
|
for (i=0; i<numrepeats; i++) {
|
||||||
_MMU->SB_VAddr(Address,(BYTE)wMemory);
|
_MMU->SB_VAddr(Address,(BYTE)wMemory);
|
||||||
Address += offset;
|
Address += offset;
|
||||||
wMemory += incr;
|
wMemory += (WORD)incr;
|
||||||
}
|
}
|
||||||
return 2;
|
return 2;
|
||||||
case 0x11000000: // Xplorer64
|
case 0x11000000: // Xplorer64
|
||||||
|
@ -330,7 +330,7 @@ int CCheats::ApplyCheatEntry (CMipsMemory * _MMU, const CODES & CodeEntry, int C
|
||||||
for (i=0; i<numrepeats; i++) {
|
for (i=0; i<numrepeats; i++) {
|
||||||
_MMU->SH_VAddr(Address,wMemory);
|
_MMU->SH_VAddr(Address,wMemory);
|
||||||
Address += offset;
|
Address += offset;
|
||||||
wMemory += incr;
|
wMemory += (WORD)incr;
|
||||||
}
|
}
|
||||||
return 2;
|
return 2;
|
||||||
default: return 1;
|
default: return 1;
|
||||||
|
@ -468,7 +468,7 @@ DWORD CCheats::AsciiToHex (const char * HexValue) {
|
||||||
return Value;
|
return Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCheats::AddCodeLayers (int CheatNumber, stdstr &CheatName, WND_HANDLE hParent, bool CheatActive) {
|
void CCheats::AddCodeLayers (int CheatNumber, const stdstr &CheatName, WND_HANDLE hParent, bool CheatActive) {
|
||||||
TV_INSERTSTRUCT tv;
|
TV_INSERTSTRUCT tv;
|
||||||
|
|
||||||
//Work out text to add
|
//Work out text to add
|
||||||
|
@ -568,8 +568,6 @@ bool CCheats::CheatUsesCodeExtensions (const stdstr &LineEntry) {
|
||||||
void CCheats::RefreshCheatManager(void)
|
void CCheats::RefreshCheatManager(void)
|
||||||
{
|
{
|
||||||
if (m_Window == NULL) { return; }
|
if (m_Window == NULL) { return; }
|
||||||
|
|
||||||
int CurrentEdit = m_EditCheat;
|
|
||||||
|
|
||||||
m_DeleteingEntries = true;
|
m_DeleteingEntries = true;
|
||||||
TreeView_DeleteAllItems((HWND)m_hCheatTree);
|
TreeView_DeleteAllItems((HWND)m_hCheatTree);
|
||||||
|
@ -1283,7 +1281,7 @@ int CALLBACK CCheats::CheatsCodeQuantProc (WND_HANDLE hDlg,DWORD uMsg,DWORD wPar
|
||||||
sprintf(szTmp2,"$%X",Value);
|
sprintf(szTmp2,"$%X",Value);
|
||||||
if (strcmp(szTmp,szTmp2) != 0) {
|
if (strcmp(szTmp,szTmp2) != 0) {
|
||||||
SetDlgItemText((HWND)hDlg,IDC_VALUE,szTmp2);
|
SetDlgItemText((HWND)hDlg,IDC_VALUE,szTmp2);
|
||||||
if (SelStop == 0) { SelStop = strlen(szTmp2); SelStart = SelStop; }
|
if (SelStop == 0) { SelStop = (WORD)strlen(szTmp2); SelStart = SelStop; }
|
||||||
SendDlgItemMessage((HWND)hDlg,IDC_VALUE,EM_SETSEL,(WPARAM)SelStart,(LPARAM)SelStop);
|
SendDlgItemMessage((HWND)hDlg,IDC_VALUE,EM_SETSEL,(WPARAM)SelStart,(LPARAM)SelStop);
|
||||||
} else {
|
} else {
|
||||||
WORD NewSelStart, NewSelStop;
|
WORD NewSelStart, NewSelStop;
|
||||||
|
@ -1358,7 +1356,7 @@ int CALLBACK CCheats::ManageCheatsProc (WND_HANDLE hDlg,DWORD uMsg,DWORD wParam,
|
||||||
RECT * rc = &WndPlac.rcNormalPosition;
|
RECT * rc = &WndPlac.rcNormalPosition;
|
||||||
if (_Settings->LoadDword(UserInterface_BasicMode))
|
if (_Settings->LoadDword(UserInterface_BasicMode))
|
||||||
{
|
{
|
||||||
RECT * rcAdd = (RECT *)_this->m_rcAdd, * rcList = (RECT *)_this->m_rcList;
|
RECT * rcList = (RECT *)_this->m_rcList;
|
||||||
GetWindowRect(GetDlgItem((HWND)_this->m_hSelectCheat, IDC_CHEATSFRAME), rcList);
|
GetWindowRect(GetDlgItem((HWND)_this->m_hSelectCheat, IDC_CHEATSFRAME), rcList);
|
||||||
_this->m_MinSizeDlg = rcList->right - rcList->left + 16;
|
_this->m_MinSizeDlg = rcList->right - rcList->left + 16;
|
||||||
_this->m_MaxSizeDlg = _this->m_MinSizeDlg;
|
_this->m_MaxSizeDlg = _this->m_MinSizeDlg;
|
||||||
|
@ -1741,16 +1739,12 @@ stdstr CCheats::ReadCodeString (WND_HANDLE hDlg, bool &validcodes, bool &validop
|
||||||
return codestring;
|
return codestring;
|
||||||
}
|
}
|
||||||
|
|
||||||
stdstr CCheats::ReadOptionsString(WND_HANDLE hDlg, bool &validcodes, bool &validoptions, bool &nooptions, int &codeformat)
|
stdstr CCheats::ReadOptionsString(WND_HANDLE hDlg, bool &/*validcodes*/, bool &validoptions, bool &/*nooptions*/, int &codeformat)
|
||||||
{
|
{
|
||||||
int numlines, linecount, len;
|
int numlines, linecount, len;
|
||||||
char str[128];
|
char str[128];
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
int leftorder = 0;
|
|
||||||
int rightorder = 0;
|
|
||||||
|
|
||||||
|
|
||||||
validoptions = true;
|
validoptions = true;
|
||||||
int numoptions = 0;
|
int numoptions = 0;
|
||||||
|
|
||||||
|
@ -1784,7 +1778,7 @@ stdstr CCheats::ReadOptionsString(WND_HANDLE hDlg, bool &validcodes, bool &valid
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j=0; j<2; j++) {
|
for (j=0; j<2; j++) {
|
||||||
str[j] = toupper(str[j]);
|
str[j] = (char)toupper(str[j]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (optionsstring[0] == 0)
|
if (optionsstring[0] == 0)
|
||||||
|
@ -1817,7 +1811,7 @@ stdstr CCheats::ReadOptionsString(WND_HANDLE hDlg, bool &validcodes, bool &valid
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j=0; j<4; j++) {
|
for (j=0; j<4; j++) {
|
||||||
str[j] = toupper(str[j]);
|
str[j] = (char)toupper(str[j]);
|
||||||
}
|
}
|
||||||
|
|
||||||
strcat(optionsstring, ",$");
|
strcat(optionsstring, ",$");
|
||||||
|
|
|
@ -38,7 +38,7 @@ class CCheats {
|
||||||
|
|
||||||
void LoadPermCheats (void);
|
void LoadPermCheats (void);
|
||||||
bool LoadCode ( int CheatNo, LPCSTR CheatString );
|
bool LoadCode ( int CheatNo, LPCSTR CheatString );
|
||||||
void AddCodeLayers ( int CheatNumber, stdstr &CheatName, WND_HANDLE hParent, bool CheatActive );
|
void AddCodeLayers ( int CheatNumber, const stdstr &CheatName, WND_HANDLE hParent, bool CheatActive );
|
||||||
//Reload the cheats from the ini file to the select gui
|
//Reload the cheats from the ini file to the select gui
|
||||||
void RefreshCheatManager ( void );
|
void RefreshCheatManager ( void );
|
||||||
void ChangeChildrenStatus ( WND_HANDLE hParent, bool Checked );
|
void ChangeChildrenStatus ( WND_HANDLE hParent, bool Checked );
|
||||||
|
|
|
@ -18,8 +18,8 @@ CDebugMemoryView::~CDebugMemoryView()
|
||||||
|
|
||||||
LRESULT CDebugMemoryView::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
|
LRESULT CDebugMemoryView::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
|
||||||
{
|
{
|
||||||
m_DataStartLoc = -1;
|
m_DataStartLoc = (DWORD)-1;
|
||||||
m_CompareStartLoc = -1;
|
m_CompareStartLoc = (DWORD)-1;
|
||||||
memset(m_CompareData,0,sizeof(m_CompareData));
|
memset(m_CompareData,0,sizeof(m_CompareData));
|
||||||
memset(m_CompareValid,0,sizeof(m_CompareValid));
|
memset(m_CompareValid,0,sizeof(m_CompareValid));
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ LRESULT CDebugMemoryView::OnDestroy ( void )
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
LRESULT CDebugMemoryView::OnClicked (WORD wNotifyCode, WORD wID, HWND , BOOL& bHandled)
|
LRESULT CDebugMemoryView::OnClicked (WORD /*wNotifyCode*/, WORD wID, HWND , BOOL& /*bHandled*/)
|
||||||
{
|
{
|
||||||
switch(wID)
|
switch(wID)
|
||||||
{
|
{
|
||||||
|
@ -280,7 +280,7 @@ void CDebugMemoryView::Insert_MemoryLineDump ( int LineNumber )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDebugMemoryView::OnAddrChanged( UINT Code, int id, HWND ctl )
|
void CDebugMemoryView::OnAddrChanged( UINT /*Code*/, int /*id*/, HWND /*ctl*/ )
|
||||||
{
|
{
|
||||||
RefreshMemory(false);
|
RefreshMemory(false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
R4300iOp::Func * CInterpreterCPU::m_R4300i_Opcode = NULL;
|
R4300iOp::Func * CInterpreterCPU::m_R4300i_Opcode = NULL;
|
||||||
DWORD CInterpreterCPU::m_CountPerOp = 2;
|
DWORD CInterpreterCPU::m_CountPerOp = 2;
|
||||||
|
|
||||||
void ExecuteInterpreterOps (DWORD Cycles)
|
void ExecuteInterpreterOps (DWORD /*Cycles*/)
|
||||||
{
|
{
|
||||||
_Notify->BreakPoint(__FILE__,__LINE__);
|
_Notify->BreakPoint(__FILE__,__LINE__);
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,13 +74,15 @@ void CAudio::TimerDone ( void )
|
||||||
m_SecondBuff = 0;
|
m_SecondBuff = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CAudio::SetViIntr ( DWORD VI_INTR_TIME )
|
void CAudio::SetViIntr ( DWORD /*VI_INTR_TIME*/ )
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
double CountsPerSecond = (DWORD)((double)VI_INTR_TIME * m_FramesPerSecond);
|
double CountsPerSecond = (DWORD)((double)VI_INTR_TIME * m_FramesPerSecond);
|
||||||
if (m_BytesPerSecond != 0)
|
if (m_BytesPerSecond != 0)
|
||||||
{
|
{
|
||||||
//m_CountsPerByte = (double)CountsPerSecond / (double)m_BytesPerSecond;
|
//m_CountsPerByte = (double)CountsPerSecond / (double)m_BytesPerSecond;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ CEeprom::~CEeprom (void) {
|
||||||
unsigned char byte2bcd(int n)
|
unsigned char byte2bcd(int n)
|
||||||
{
|
{
|
||||||
n %= 100;
|
n %= 100;
|
||||||
return ((n / 10) << 4) | (n % 10);
|
return (unsigned char)(((n / 10) << 4) | (n % 10));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CEeprom::EepromCommand ( BYTE * Command) {
|
void CEeprom::EepromCommand ( BYTE * Command) {
|
||||||
|
|
|
@ -28,7 +28,7 @@ CMipsMemoryVM::~CMipsMemoryVM (void)
|
||||||
FreeMemory();
|
FreeMemory();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMipsMemoryVM::Reset( bool EraseMemory )
|
void CMipsMemoryVM::Reset( bool /*EraseMemory*/ )
|
||||||
{
|
{
|
||||||
if (m_TLB_ReadMap)
|
if (m_TLB_ReadMap)
|
||||||
{
|
{
|
||||||
|
@ -735,8 +735,8 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr ) {
|
||||||
AfterCallDirect(m_RegWorkingSet);
|
AfterCallDirect(m_RegWorkingSet);
|
||||||
}
|
}
|
||||||
if ( ( Value & SP_CLR_INTR ) != 0) {
|
if ( ( Value & SP_CLR_INTR ) != 0) {
|
||||||
AndConstToVariable(~MI_INTR_SP,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
AndConstToVariable((DWORD)~MI_INTR_SP,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
||||||
AndConstToVariable(~MI_INTR_SP,&_Reg->m_RspIntrReg,"m_RspIntrReg");
|
AndConstToVariable((DWORD)~MI_INTR_SP,&_Reg->m_RspIntrReg,"m_RspIntrReg");
|
||||||
BeforeCallDirect(m_RegWorkingSet);
|
BeforeCallDirect(m_RegWorkingSet);
|
||||||
MoveConstToX86reg((DWORD)_System,x86_ECX);
|
MoveConstToX86reg((DWORD)_System,x86_ECX);
|
||||||
Call_Direct(AddressOf(&CN64System::RunRSP),"CN64System::RunRSP");
|
Call_Direct(AddressOf(&CN64System::RunRSP),"CN64System::RunRSP");
|
||||||
|
@ -778,8 +778,8 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr ) {
|
||||||
OrConstToVariable(ModValue,&_Reg->MI_MODE_REG,"MI_MODE_REG");
|
OrConstToVariable(ModValue,&_Reg->MI_MODE_REG,"MI_MODE_REG");
|
||||||
}
|
}
|
||||||
if ( ( Value & MI_CLR_DP_INTR ) != 0 ) {
|
if ( ( Value & MI_CLR_DP_INTR ) != 0 ) {
|
||||||
AndConstToVariable(~MI_INTR_DP,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
AndConstToVariable((DWORD)~MI_INTR_DP,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
||||||
AndConstToVariable(~MI_INTR_DP,&_Reg->m_GfxIntrReg,"m_GfxIntrReg");
|
AndConstToVariable((DWORD)~MI_INTR_DP,&_Reg->m_GfxIntrReg,"m_GfxIntrReg");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -846,7 +846,7 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr ) {
|
||||||
break;
|
break;
|
||||||
case 0x0440000C: MoveConstToVariable(Value,&_Reg->VI_INTR_REG,"VI_INTR_REG"); break;
|
case 0x0440000C: MoveConstToVariable(Value,&_Reg->VI_INTR_REG,"VI_INTR_REG"); break;
|
||||||
case 0x04400010:
|
case 0x04400010:
|
||||||
AndConstToVariable(~MI_INTR_VI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
AndConstToVariable((DWORD)~MI_INTR_VI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
||||||
BeforeCallDirect(m_RegWorkingSet);
|
BeforeCallDirect(m_RegWorkingSet);
|
||||||
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
||||||
Call_Direct(AddressOf(&CRegisters::CheckInterrupts),"CRegisters::CheckInterrupts");
|
Call_Direct(AddressOf(&CRegisters::CheckInterrupts),"CRegisters::CheckInterrupts");
|
||||||
|
@ -884,10 +884,10 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr ) {
|
||||||
case 0x04500008: MoveConstToVariable((Value & 1),&_Reg->AI_CONTROL_REG,"AI_CONTROL_REG"); break;
|
case 0x04500008: MoveConstToVariable((Value & 1),&_Reg->AI_CONTROL_REG,"AI_CONTROL_REG"); break;
|
||||||
case 0x0450000C:
|
case 0x0450000C:
|
||||||
/* Clear Interrupt */;
|
/* Clear Interrupt */;
|
||||||
AndConstToVariable(~MI_INTR_AI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
AndConstToVariable((DWORD)~MI_INTR_AI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
||||||
if (!bFixedAudio())
|
if (!bFixedAudio())
|
||||||
{
|
{
|
||||||
AndConstToVariable(~MI_INTR_AI,&_Reg->m_AudioIntrReg,"m_AudioIntrReg");
|
AndConstToVariable((DWORD)~MI_INTR_AI,&_Reg->m_AudioIntrReg,"m_AudioIntrReg");
|
||||||
}
|
}
|
||||||
BeforeCallDirect(m_RegWorkingSet);
|
BeforeCallDirect(m_RegWorkingSet);
|
||||||
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
||||||
|
@ -925,7 +925,7 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr ) {
|
||||||
break;
|
break;
|
||||||
case 0x04600010:
|
case 0x04600010:
|
||||||
if ((Value & PI_CLR_INTR) != 0 ) {
|
if ((Value & PI_CLR_INTR) != 0 ) {
|
||||||
AndConstToVariable(~MI_INTR_PI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
AndConstToVariable((DWORD)~MI_INTR_PI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
||||||
BeforeCallDirect(m_RegWorkingSet);
|
BeforeCallDirect(m_RegWorkingSet);
|
||||||
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
||||||
Call_Direct(AddressOf(&CRegisters::CheckInterrupts),"CRegisters::CheckInterrupts");
|
Call_Direct(AddressOf(&CRegisters::CheckInterrupts),"CRegisters::CheckInterrupts");
|
||||||
|
@ -974,8 +974,8 @@ void CMipsMemoryVM::Compile_SW_Const ( DWORD Value, DWORD VAddr ) {
|
||||||
AfterCallDirect(m_RegWorkingSet);
|
AfterCallDirect(m_RegWorkingSet);
|
||||||
break;
|
break;
|
||||||
case 0x04800018:
|
case 0x04800018:
|
||||||
AndConstToVariable(~MI_INTR_SI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
AndConstToVariable((DWORD)~MI_INTR_SI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
||||||
AndConstToVariable(~SI_STATUS_INTERRUPT,&_Reg->SI_STATUS_REG,"SI_STATUS_REG");
|
AndConstToVariable((DWORD)~SI_STATUS_INTERRUPT,&_Reg->SI_STATUS_REG,"SI_STATUS_REG");
|
||||||
BeforeCallDirect(m_RegWorkingSet);
|
BeforeCallDirect(m_RegWorkingSet);
|
||||||
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
||||||
Call_Direct(AddressOf(&CRegisters::CheckInterrupts),"CRegisters::CheckInterrupts");
|
Call_Direct(AddressOf(&CRegisters::CheckInterrupts),"CRegisters::CheckInterrupts");
|
||||||
|
@ -1116,7 +1116,7 @@ void CMipsMemoryVM::Compile_SW_Register (x86Reg Reg, DWORD VAddr )
|
||||||
break;
|
break;
|
||||||
case 0x0440000C: MoveX86regToVariable(Reg,&_Reg->VI_INTR_REG,"VI_INTR_REG"); break;
|
case 0x0440000C: MoveX86regToVariable(Reg,&_Reg->VI_INTR_REG,"VI_INTR_REG"); break;
|
||||||
case 0x04400010:
|
case 0x04400010:
|
||||||
AndConstToVariable(~MI_INTR_VI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
AndConstToVariable((DWORD)~MI_INTR_VI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
||||||
BeforeCallDirect(m_RegWorkingSet);
|
BeforeCallDirect(m_RegWorkingSet);
|
||||||
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
||||||
Call_Direct(AddressOf(&CRegisters::CheckInterrupts),"CRegisters::CheckInterrupts");
|
Call_Direct(AddressOf(&CRegisters::CheckInterrupts),"CRegisters::CheckInterrupts");
|
||||||
|
@ -1159,10 +1159,10 @@ void CMipsMemoryVM::Compile_SW_Register (x86Reg Reg, DWORD VAddr )
|
||||||
AndConstToVariable(1,&_Reg->AI_CONTROL_REG,"AI_CONTROL_REG");
|
AndConstToVariable(1,&_Reg->AI_CONTROL_REG,"AI_CONTROL_REG");
|
||||||
case 0x0450000C:
|
case 0x0450000C:
|
||||||
/* Clear Interrupt */;
|
/* Clear Interrupt */;
|
||||||
AndConstToVariable(~MI_INTR_AI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
AndConstToVariable((DWORD)~MI_INTR_AI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
||||||
if (!bFixedAudio())
|
if (!bFixedAudio())
|
||||||
{
|
{
|
||||||
AndConstToVariable(~MI_INTR_AI,&_Reg->m_AudioIntrReg,"m_AudioIntrReg");
|
AndConstToVariable((DWORD)~MI_INTR_AI,&_Reg->m_AudioIntrReg,"m_AudioIntrReg");
|
||||||
}
|
}
|
||||||
BeforeCallDirect(m_RegWorkingSet);
|
BeforeCallDirect(m_RegWorkingSet);
|
||||||
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
||||||
|
@ -1199,7 +1199,7 @@ void CMipsMemoryVM::Compile_SW_Register (x86Reg Reg, DWORD VAddr )
|
||||||
break;
|
break;
|
||||||
case 0x04600010:
|
case 0x04600010:
|
||||||
if (_Settings->LoadBool(Debugger_ShowUnhandledMemory)) { _Notify->DisplayError("Compile_SW_Register\ntrying to store at %X?",VAddr); }
|
if (_Settings->LoadBool(Debugger_ShowUnhandledMemory)) { _Notify->DisplayError("Compile_SW_Register\ntrying to store at %X?",VAddr); }
|
||||||
AndConstToVariable(~MI_INTR_PI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
AndConstToVariable((DWORD)~MI_INTR_PI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
||||||
BeforeCallDirect(m_RegWorkingSet);
|
BeforeCallDirect(m_RegWorkingSet);
|
||||||
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
||||||
Call_Direct(AddressOf(&CRegisters::CheckInterrupts),"CRegisters::CheckInterrupts");
|
Call_Direct(AddressOf(&CRegisters::CheckInterrupts),"CRegisters::CheckInterrupts");
|
||||||
|
@ -1253,8 +1253,8 @@ void CMipsMemoryVM::Compile_SW_Register (x86Reg Reg, DWORD VAddr )
|
||||||
AfterCallDirect(m_RegWorkingSet);
|
AfterCallDirect(m_RegWorkingSet);
|
||||||
break;
|
break;
|
||||||
case 0x04800018:
|
case 0x04800018:
|
||||||
AndConstToVariable(~MI_INTR_SI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
AndConstToVariable((DWORD)~MI_INTR_SI,&_Reg->MI_INTR_REG,"MI_INTR_REG");
|
||||||
AndConstToVariable(~SI_STATUS_INTERRUPT,&_Reg->SI_STATUS_REG,"SI_STATUS_REG");
|
AndConstToVariable((DWORD)~SI_STATUS_INTERRUPT,&_Reg->SI_STATUS_REG,"SI_STATUS_REG");
|
||||||
BeforeCallDirect(m_RegWorkingSet);
|
BeforeCallDirect(m_RegWorkingSet);
|
||||||
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
MoveConstToX86reg((DWORD)_Reg,x86_ECX);
|
||||||
Call_Direct(AddressOf(&CRegisters::CheckInterrupts),"CRegisters::CheckInterrupts");
|
Call_Direct(AddressOf(&CRegisters::CheckInterrupts),"CRegisters::CheckInterrupts");
|
||||||
|
@ -1326,7 +1326,7 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
|
||||||
return EXCEPTION_EXECUTE_HANDLER;
|
return EXCEPTION_EXECUTE_HANDLER;
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD * Reg;
|
DWORD * Reg = NULL;
|
||||||
|
|
||||||
BYTE * TypePos = (unsigned char *)lpEP->ContextRecord->Eip;
|
BYTE * TypePos = (unsigned char *)lpEP->ContextRecord->Eip;
|
||||||
EXCEPTION_RECORD exRec = *lpEP->ExceptionRecord;
|
EXCEPTION_RECORD exRec = *lpEP->ExceptionRecord;
|
||||||
|
@ -1433,6 +1433,12 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
|
||||||
return EXCEPTION_EXECUTE_HANDLER;
|
return EXCEPTION_EXECUTE_HANDLER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Reg == NULL)
|
||||||
|
{
|
||||||
|
if (bHaveDebugger()) { _Notify->BreakPoint(__FILE__,__LINE__); }
|
||||||
|
return EXCEPTION_EXECUTE_HANDLER;
|
||||||
|
}
|
||||||
|
|
||||||
switch(*TypePos) {
|
switch(*TypePos) {
|
||||||
case 0x0F:
|
case 0x0F:
|
||||||
switch(*(TypePos + 1)) {
|
switch(*(TypePos + 1)) {
|
||||||
|
@ -1596,7 +1602,7 @@ int CMipsMemoryVM::MemoryFilter( DWORD dwExptCode, void * lpExceptionPointer )
|
||||||
return EXCEPTION_EXECUTE_HANDLER;
|
return EXCEPTION_EXECUTE_HANDLER;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CMipsMemoryVM::LB_NonMemory ( DWORD PAddr, DWORD * Value, BOOL SignExtend ) {
|
int CMipsMemoryVM::LB_NonMemory ( DWORD /*PAddr*/, DWORD * Value, BOOL /*SignExtend*/ ) {
|
||||||
_Notify->BreakPoint(__FILE__,__LINE__);
|
_Notify->BreakPoint(__FILE__,__LINE__);
|
||||||
#ifdef tofix
|
#ifdef tofix
|
||||||
if (PAddr >= 0x10000000 && PAddr < 0x16000000) {
|
if (PAddr >= 0x10000000 && PAddr < 0x16000000) {
|
||||||
|
@ -1624,7 +1630,8 @@ int CMipsMemoryVM::LB_NonMemory ( DWORD PAddr, DWORD * Value, BOOL SignExtend )
|
||||||
// return TRUE;
|
// return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CMipsMemoryVM::LH_NonMemory ( DWORD PAddr, DWORD * Value, int SignExtend ) {
|
int CMipsMemoryVM::LH_NonMemory ( DWORD /*PAddr*/, DWORD * Value, int/* SignExtend*/ ) {
|
||||||
|
_Notify->BreakPoint(__FILE__,__LINE__);
|
||||||
// switch (PAddr & 0xFFF00000) {
|
// switch (PAddr & 0xFFF00000) {
|
||||||
// default:
|
// default:
|
||||||
* Value = 0;
|
* Value = 0;
|
||||||
|
@ -2711,7 +2718,7 @@ void CMipsMemoryVM::Compile_LWC1 (void)
|
||||||
void CMipsMemoryVM::Compile_LWL (void)
|
void CMipsMemoryVM::Compile_LWL (void)
|
||||||
{
|
{
|
||||||
OPCODE & Opcode = CRecompilerOps::m_Opcode;
|
OPCODE & Opcode = CRecompilerOps::m_Opcode;
|
||||||
x86Reg TempReg1, TempReg2, OffsetReg, shift;
|
x86Reg TempReg1 = x86_Unknown, TempReg2 = x86_Unknown, OffsetReg = x86_Unknown, shift = x86_Unknown;
|
||||||
|
|
||||||
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(Opcode.Hex,m_CompilePC));
|
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(Opcode.Hex,m_CompilePC));
|
||||||
|
|
||||||
|
@ -2756,7 +2763,7 @@ void CMipsMemoryVM::Compile_LWL (void)
|
||||||
OffsetReg = Map_TempReg(x86_Any,-1,FALSE);
|
OffsetReg = Map_TempReg(x86_Any,-1,FALSE);
|
||||||
MoveX86RegToX86Reg(TempReg1, OffsetReg);
|
MoveX86RegToX86Reg(TempReg1, OffsetReg);
|
||||||
AndConstToX86Reg(OffsetReg,3);
|
AndConstToX86Reg(OffsetReg,3);
|
||||||
AndConstToX86Reg(TempReg1,~3);
|
AndConstToX86Reg(TempReg1,(DWORD)~3);
|
||||||
|
|
||||||
Map_GPR_32bit(Opcode.rt,TRUE,Opcode.rt);
|
Map_GPR_32bit(Opcode.rt,TRUE,Opcode.rt);
|
||||||
AndVariableDispToX86Reg((void *)LWL_MASK,"LWL_MASK",MipsRegMapLo(Opcode.rt),OffsetReg,Multip_x4);
|
AndVariableDispToX86Reg((void *)LWL_MASK,"LWL_MASK",MipsRegMapLo(Opcode.rt),OffsetReg,Multip_x4);
|
||||||
|
@ -2774,7 +2781,7 @@ void CMipsMemoryVM::Compile_LWL (void)
|
||||||
void CMipsMemoryVM::Compile_LWR (void)
|
void CMipsMemoryVM::Compile_LWR (void)
|
||||||
{
|
{
|
||||||
OPCODE & Opcode = CRecompilerOps::m_Opcode;
|
OPCODE & Opcode = CRecompilerOps::m_Opcode;
|
||||||
x86Reg TempReg1, TempReg2, OffsetReg, shift;
|
x86Reg TempReg1 = x86_Unknown, TempReg2 = x86_Unknown, OffsetReg = x86_Unknown, shift = x86_Unknown;
|
||||||
|
|
||||||
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(Opcode.Hex,m_CompilePC));
|
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(Opcode.Hex,m_CompilePC));
|
||||||
|
|
||||||
|
@ -2820,7 +2827,7 @@ void CMipsMemoryVM::Compile_LWR (void)
|
||||||
OffsetReg = Map_TempReg(x86_Any,-1,FALSE);
|
OffsetReg = Map_TempReg(x86_Any,-1,FALSE);
|
||||||
MoveX86RegToX86Reg(TempReg1, OffsetReg);
|
MoveX86RegToX86Reg(TempReg1, OffsetReg);
|
||||||
AndConstToX86Reg(OffsetReg,3);
|
AndConstToX86Reg(OffsetReg,3);
|
||||||
AndConstToX86Reg(TempReg1,~3);
|
AndConstToX86Reg(TempReg1,(DWORD)~3);
|
||||||
|
|
||||||
Map_GPR_32bit(Opcode.rt,TRUE,Opcode.rt);
|
Map_GPR_32bit(Opcode.rt,TRUE,Opcode.rt);
|
||||||
AndVariableDispToX86Reg((void *)LWR_MASK,"LWR_MASK",MipsRegMapLo(Opcode.rt),OffsetReg,Multip_x4);
|
AndVariableDispToX86Reg((void *)LWR_MASK,"LWR_MASK",MipsRegMapLo(Opcode.rt),OffsetReg,Multip_x4);
|
||||||
|
@ -3336,7 +3343,8 @@ void CMipsMemoryVM::Compile_SWC1 (void)
|
||||||
void CMipsMemoryVM::Compile_SWL (void)
|
void CMipsMemoryVM::Compile_SWL (void)
|
||||||
{
|
{
|
||||||
OPCODE & Opcode = CRecompilerOps::m_Opcode;
|
OPCODE & Opcode = CRecompilerOps::m_Opcode;
|
||||||
x86Reg TempReg1, TempReg2, Value, shift, OffsetReg;
|
x86Reg TempReg1 = x86_Unknown, TempReg2 = x86_Unknown, Value = x86_Unknown,
|
||||||
|
shift = x86_Unknown, OffsetReg = x86_Unknown;
|
||||||
|
|
||||||
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(Opcode.Hex,m_CompilePC));
|
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(Opcode.Hex,m_CompilePC));
|
||||||
|
|
||||||
|
@ -3383,7 +3391,7 @@ void CMipsMemoryVM::Compile_SWL (void)
|
||||||
OffsetReg = Map_TempReg(x86_Any,-1,FALSE);
|
OffsetReg = Map_TempReg(x86_Any,-1,FALSE);
|
||||||
MoveX86RegToX86Reg(TempReg1, OffsetReg);
|
MoveX86RegToX86Reg(TempReg1, OffsetReg);
|
||||||
AndConstToX86Reg(OffsetReg,3);
|
AndConstToX86Reg(OffsetReg,3);
|
||||||
AndConstToX86Reg(TempReg1,~3);
|
AndConstToX86Reg(TempReg1,(DWORD)~3);
|
||||||
|
|
||||||
Value = Map_TempReg(x86_Any,-1,FALSE);
|
Value = Map_TempReg(x86_Any,-1,FALSE);
|
||||||
if (bUseTlb()) {
|
if (bUseTlb()) {
|
||||||
|
@ -3421,7 +3429,8 @@ void CMipsMemoryVM::Compile_SWL (void)
|
||||||
void CMipsMemoryVM::Compile_SWR (void)
|
void CMipsMemoryVM::Compile_SWR (void)
|
||||||
{
|
{
|
||||||
OPCODE & Opcode = CRecompilerOps::m_Opcode;
|
OPCODE & Opcode = CRecompilerOps::m_Opcode;
|
||||||
x86Reg TempReg1, TempReg2, Value, OffsetReg, shift;
|
x86Reg TempReg1 = x86_Unknown, TempReg2 = x86_Unknown, Value = x86_Unknown,
|
||||||
|
OffsetReg = x86_Unknown, shift = x86_Unknown;
|
||||||
|
|
||||||
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(Opcode.Hex,m_CompilePC));
|
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(Opcode.Hex,m_CompilePC));
|
||||||
|
|
||||||
|
@ -3466,7 +3475,7 @@ void CMipsMemoryVM::Compile_SWR (void)
|
||||||
OffsetReg = Map_TempReg(x86_Any,-1,FALSE);
|
OffsetReg = Map_TempReg(x86_Any,-1,FALSE);
|
||||||
MoveX86RegToX86Reg(TempReg1, OffsetReg);
|
MoveX86RegToX86Reg(TempReg1, OffsetReg);
|
||||||
AndConstToX86Reg(OffsetReg,3);
|
AndConstToX86Reg(OffsetReg,3);
|
||||||
AndConstToX86Reg(TempReg1,~3);
|
AndConstToX86Reg(TempReg1,(DWORD)~3);
|
||||||
|
|
||||||
Value = Map_TempReg(x86_Any,-1,FALSE);
|
Value = Map_TempReg(x86_Any,-1,FALSE);
|
||||||
if (bUseTlb()) {
|
if (bUseTlb()) {
|
||||||
|
|
|
@ -78,7 +78,7 @@ void CCodeBlock::CompileExitCode ( void )
|
||||||
CPU_Message(" $Exit_%d",ExitIter->ID);
|
CPU_Message(" $Exit_%d",ExitIter->ID);
|
||||||
SetJump32(ExitIter->JumpLoc,(DWORD *)m_RecompPos);
|
SetJump32(ExitIter->JumpLoc,(DWORD *)m_RecompPos);
|
||||||
m_NextInstruction = ExitIter->NextInstruction;
|
m_NextInstruction = ExitIter->NextInstruction;
|
||||||
m_EnterSection.CompileExit(-1, ExitIter->TargetPC,ExitIter->ExitRegSet,ExitIter->reason,true,NULL);
|
m_EnterSection.CompileExit((DWORD)-1, ExitIter->TargetPC,ExitIter->ExitRegSet,ExitIter->reason,true,NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -338,7 +338,7 @@ void CCodeSection::GenerateSectionLinkage (void)
|
||||||
if (JumpInfo[i]->LinkLocation == NULL &&
|
if (JumpInfo[i]->LinkLocation == NULL &&
|
||||||
JumpInfo[i]->FallThrough == false)
|
JumpInfo[i]->FallThrough == false)
|
||||||
{
|
{
|
||||||
JumpInfo[i]->TargetPC = -1;
|
JumpInfo[i]->TargetPC = (DWORD)-1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -412,7 +412,7 @@ void CCodeSection::GenerateSectionLinkage (void)
|
||||||
MoveConstToX86reg((DWORD)_SystemTimer,x86_ECX);
|
MoveConstToX86reg((DWORD)_SystemTimer,x86_ECX);
|
||||||
Call_Direct(AddressOf(&CSystemTimer::TimerDone),"CSystemTimer::TimerDone");
|
Call_Direct(AddressOf(&CSystemTimer::TimerDone),"CSystemTimer::TimerDone");
|
||||||
CPU_Message("CompileSystemCheck 3");
|
CPU_Message("CompileSystemCheck 3");
|
||||||
CompileSystemCheck(-1,m_Jump.RegSet);
|
CompileSystemCheck((DWORD)-1,m_Jump.RegSet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (TargetSection[0] != TargetSection[1] || TargetSection[0] == NULL) {
|
if (TargetSection[0] != TargetSection[1] || TargetSection[0] == NULL) {
|
||||||
|
@ -491,7 +491,7 @@ void CCodeSection::GenerateSectionLinkage (void)
|
||||||
//JumpInfo[i]->RegSet.BlockCycleCount() += CountPerOp();
|
//JumpInfo[i]->RegSet.BlockCycleCount() += CountPerOp();
|
||||||
UpdateCounters(JumpInfo[i]->RegSet,true,true);
|
UpdateCounters(JumpInfo[i]->RegSet,true,true);
|
||||||
CPU_Message("CompileSystemCheck 4");
|
CPU_Message("CompileSystemCheck 4");
|
||||||
CompileSystemCheck(-1,JumpInfo[i]->RegSet);
|
CompileSystemCheck((DWORD)-1,JumpInfo[i]->RegSet);
|
||||||
} else {
|
} else {
|
||||||
UpdateCounters(JumpInfo[i]->RegSet,true,true);
|
UpdateCounters(JumpInfo[i]->RegSet,true,true);
|
||||||
CPU_Message("CompileSystemCheck 5");
|
CPU_Message("CompileSystemCheck 5");
|
||||||
|
@ -527,7 +527,7 @@ void CCodeSection::GenerateSectionLinkage (void)
|
||||||
Call_Direct(AddressOf(CInterpreterCPU::InPermLoop),"CInterpreterCPU::InPermLoop");
|
Call_Direct(AddressOf(CInterpreterCPU::InPermLoop),"CInterpreterCPU::InPermLoop");
|
||||||
UpdateCounters(JumpInfo[i]->RegSet,true,true);
|
UpdateCounters(JumpInfo[i]->RegSet,true,true);
|
||||||
CPU_Message("CompileSystemCheck 6");
|
CPU_Message("CompileSystemCheck 6");
|
||||||
CompileSystemCheck(-1,JumpInfo[i]->RegSet);
|
CompileSystemCheck((DWORD)-1,JumpInfo[i]->RegSet);
|
||||||
}
|
}
|
||||||
if (JumpInfo[i]->FallThrough) {
|
if (JumpInfo[i]->FallThrough) {
|
||||||
JumpInfo[i]->FallThrough = false;
|
JumpInfo[i]->FallThrough = false;
|
||||||
|
@ -594,7 +594,7 @@ void CCodeSection::GenerateSectionLinkage (void)
|
||||||
MoveConstToVariable(JumpInfo[i]->TargetPC,_PROGRAM_COUNTER,"PROGRAM_COUNTER");
|
MoveConstToVariable(JumpInfo[i]->TargetPC,_PROGRAM_COUNTER,"PROGRAM_COUNTER");
|
||||||
Call_Direct(AddressOf(CInterpreterCPU::InPermLoop),"CInterpreterCPU::InPermLoop");
|
Call_Direct(AddressOf(CInterpreterCPU::InPermLoop),"CInterpreterCPU::InPermLoop");
|
||||||
CPU_Message("CompileSystemCheck 8");
|
CPU_Message("CompileSystemCheck 8");
|
||||||
CompileSystemCheck(-1,JumpInfo[i]->RegSet);
|
CompileSystemCheck((DWORD)-1,JumpInfo[i]->RegSet);
|
||||||
} else {
|
} else {
|
||||||
CPU_Message("CompileSystemCheck 9");
|
CPU_Message("CompileSystemCheck 9");
|
||||||
CompileSystemCheck(JumpInfo[i]->TargetPC,JumpInfo[i]->RegSet);
|
CompileSystemCheck(JumpInfo[i]->TargetPC,JumpInfo[i]->RegSet);
|
||||||
|
@ -876,7 +876,7 @@ bool CCodeSection::CreateSectionLinkage ( void )
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
(*TargetSection[i])->m_Jump.TargetPC = -1;
|
(*TargetSection[i])->m_Jump.TargetPC = (DWORD)-1;
|
||||||
(*TargetSection[i])->m_Cont.TargetPC = JumpInfo[i]->TargetPC;
|
(*TargetSection[i])->m_Cont.TargetPC = JumpInfo[i]->TargetPC;
|
||||||
(*TargetSection[i])->m_Cont.FallThrough = true;
|
(*TargetSection[i])->m_Cont.FallThrough = true;
|
||||||
(*TargetSection[i])->m_Cont.RegSet = (*TargetSection[i])->m_RegWorkingSet;
|
(*TargetSection[i])->m_Cont.RegSet = (*TargetSection[i])->m_RegWorkingSet;
|
||||||
|
@ -2105,7 +2105,7 @@ bool CCodeSection::FillSectionInfo(STEP_TYPE StartStepType)
|
||||||
}
|
}
|
||||||
if (Value1 == Value2)
|
if (Value1 == Value2)
|
||||||
{
|
{
|
||||||
m_Cont.TargetPC = -1;
|
m_Cont.TargetPC = (DWORD)-1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -2620,7 +2620,7 @@ bool CCodeSection::InheritParentInfo ( void )
|
||||||
ParentList.push_back(BlockParent);
|
ParentList.push_back(BlockParent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int NoOfCompiledParents = ParentList.size();
|
size_t NoOfCompiledParents = ParentList.size();
|
||||||
if (NoOfCompiledParents == 0)
|
if (NoOfCompiledParents == 0)
|
||||||
{
|
{
|
||||||
_Notify->DisplayError("No Parent has been compiled ????");
|
_Notify->DisplayError("No Parent has been compiled ????");
|
||||||
|
@ -2647,8 +2647,8 @@ bool CCodeSection::InheritParentInfo ( void )
|
||||||
ParentList.push_back(BlockParent);
|
ParentList.push_back(BlockParent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int FirstParent = 0;
|
size_t FirstParent = 0;
|
||||||
for (int i = 1;i < NoOfCompiledParents;i++) {
|
for (size_t i = 1;i < NoOfCompiledParents;i++) {
|
||||||
if (ParentList[i].JumpInfo->FallThrough) {
|
if (ParentList[i].JumpInfo->FallThrough) {
|
||||||
FirstParent = i; break;
|
FirstParent = i; break;
|
||||||
}
|
}
|
||||||
|
@ -2778,7 +2778,7 @@ bool CCodeSection::InheritParentInfo ( void )
|
||||||
stdstr_f Label("Section_%d",m_SectionID);
|
stdstr_f Label("Section_%d",m_SectionID);
|
||||||
int CurrentParent = FirstParent;
|
int CurrentParent = FirstParent;
|
||||||
bool NeedSync = false;
|
bool NeedSync = false;
|
||||||
for (int i = 0; i < NoOfCompiledParents; i++)
|
for (size_t i = 0; i < NoOfCompiledParents; i++)
|
||||||
{
|
{
|
||||||
CRegInfo * RegSet;
|
CRegInfo * RegSet;
|
||||||
int i2;
|
int i2;
|
||||||
|
@ -2877,7 +2877,7 @@ bool CCodeSection::InheritParentInfo ( void )
|
||||||
m_RegEnter = m_RegWorkingSet;
|
m_RegEnter = m_RegWorkingSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < NoOfCompiledParents;i++) {
|
for (size_t i = 0; i < NoOfCompiledParents;i++) {
|
||||||
Parent = ParentList[i].Parent;
|
Parent = ParentList[i].Parent;
|
||||||
JumpInfo = ParentList[i].JumpInfo;
|
JumpInfo = ParentList[i].JumpInfo;
|
||||||
|
|
||||||
|
|
|
@ -851,7 +851,7 @@ CCompiledFunc * CRecompiler::CompilerCode ( void )
|
||||||
|
|
||||||
CheckRecompMem();
|
CheckRecompMem();
|
||||||
|
|
||||||
DWORD StartTime = timeGetTime();
|
//DWORD StartTime = timeGetTime();
|
||||||
WriteTraceF(TraceRecompiler,"Compile Block-Start: Program Counter: %X pAddr: %X",PROGRAM_COUNTER,pAddr);
|
WriteTraceF(TraceRecompiler,"Compile Block-Start: Program Counter: %X pAddr: %X",PROGRAM_COUNTER,pAddr);
|
||||||
|
|
||||||
CCodeBlock CodeBlock(PROGRAM_COUNTER, RecompPos());
|
CCodeBlock CodeBlock(PROGRAM_COUNTER, RecompPos());
|
||||||
|
@ -923,7 +923,6 @@ void CRecompiler::ClearRecompCode_Virt(DWORD Address, int length,REMOVE_REASON R
|
||||||
{
|
{
|
||||||
DWORD AddressIndex = Address >> 0xC;
|
DWORD AddressIndex = Address >> 0xC;
|
||||||
DWORD WriteStart = (Address & 0xFFC);
|
DWORD WriteStart = (Address & 0xFFC);
|
||||||
bool bUnProtect = false;
|
|
||||||
length = ((length + 3) & ~0x3);
|
length = ((length + 3) & ~0x3);
|
||||||
|
|
||||||
int DataInBlock = 0x1000 - WriteStart;
|
int DataInBlock = 0x1000 - WriteStart;
|
||||||
|
|
|
@ -865,7 +865,7 @@ void CRecompilerOps::BGTZ_Compare (void) {
|
||||||
m_Section->m_Jump.LinkLocation = (DWORD *)(m_RecompPos - 4);
|
m_Section->m_Jump.LinkLocation = (DWORD *)(m_RecompPos - 4);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
BYTE *Jump;
|
BYTE *Jump = NULL;
|
||||||
|
|
||||||
if (IsMapped(m_Opcode.rs)) {
|
if (IsMapped(m_Opcode.rs)) {
|
||||||
CompConstToX86reg(MipsRegMapHi(m_Opcode.rs),0);
|
CompConstToX86reg(MipsRegMapHi(m_Opcode.rs),0);
|
||||||
|
@ -957,7 +957,7 @@ void CRecompilerOps::BLEZ_Compare (void) {
|
||||||
m_Section->m_Jump.LinkLocation = (DWORD *)(m_RecompPos - 4);
|
m_Section->m_Jump.LinkLocation = (DWORD *)(m_RecompPos - 4);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
BYTE *Jump;
|
BYTE *Jump = NULL;
|
||||||
|
|
||||||
if (IsMapped(m_Opcode.rs)) {
|
if (IsMapped(m_Opcode.rs)) {
|
||||||
CompConstToX86reg(MipsRegMapHi(m_Opcode.rs),0);
|
CompConstToX86reg(MipsRegMapHi(m_Opcode.rs),0);
|
||||||
|
@ -1448,14 +1448,10 @@ void CRecompilerOps::SLTI (void)
|
||||||
if (m_Opcode.rt == 0) { return; }
|
if (m_Opcode.rt == 0) { return; }
|
||||||
|
|
||||||
if (IsConst(m_Opcode.rs)) {
|
if (IsConst(m_Opcode.rs)) {
|
||||||
DWORD Result;
|
DWORD Result = Is64Bit(m_Opcode.rs) ?
|
||||||
|
((__int64)MipsReg(m_Opcode.rs) < (__int64)((short)m_Opcode.immediate) ? 1:0) :
|
||||||
|
( MipsRegLo_S(m_Opcode.rs) < (short)m_Opcode.immediate?1:0);
|
||||||
|
|
||||||
if (Is64Bit(m_Opcode.rs)) {
|
|
||||||
__int64 Immediate = (__int64)((short)m_Opcode.immediate);
|
|
||||||
Result = (__int64)MipsReg(m_Opcode.rs) < Immediate?1:0;
|
|
||||||
} else if (Is32Bit(m_Opcode.rs)) {
|
|
||||||
Result = MipsRegLo_S(m_Opcode.rs) < (short)m_Opcode.immediate?1:0;
|
|
||||||
}
|
|
||||||
UnMap_GPR(m_Opcode.rt, FALSE);
|
UnMap_GPR(m_Opcode.rt, FALSE);
|
||||||
m_RegWorkingSet.SetMipsRegState(m_Opcode.rt,CRegInfo::STATE_CONST_32);
|
m_RegWorkingSet.SetMipsRegState(m_Opcode.rt,CRegInfo::STATE_CONST_32);
|
||||||
MipsRegLo(m_Opcode.rt) = Result;
|
MipsRegLo(m_Opcode.rt) = Result;
|
||||||
|
@ -2031,7 +2027,7 @@ void CRecompilerOps::SPECIAL_JR (void) {
|
||||||
} else {
|
} else {
|
||||||
MoveX86regToVariable(Map_TempReg(x86_Any,m_Opcode.rs,FALSE),_PROGRAM_COUNTER, "PROGRAM_COUNTER");
|
MoveX86regToVariable(Map_TempReg(x86_Any,m_Opcode.rs,FALSE),_PROGRAM_COUNTER, "PROGRAM_COUNTER");
|
||||||
}
|
}
|
||||||
m_Section->CompileExit(-1, (DWORD)-1,m_RegWorkingSet,CExitInfo::Normal,TRUE,NULL);
|
m_Section->CompileExit((DWORD)-1, (DWORD)-1,m_RegWorkingSet,CExitInfo::Normal,TRUE,NULL);
|
||||||
if (m_Section->m_JumpSection)
|
if (m_Section->m_JumpSection)
|
||||||
{
|
{
|
||||||
m_Section->GenerateSectionLinkage();
|
m_Section->GenerateSectionLinkage();
|
||||||
|
@ -2103,7 +2099,7 @@ void CRecompilerOps::SPECIAL_JALR (void)
|
||||||
|
|
||||||
void CRecompilerOps::SPECIAL_SYSCALL (void) {
|
void CRecompilerOps::SPECIAL_SYSCALL (void) {
|
||||||
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(m_Opcode.Hex,m_CompilePC));
|
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(m_Opcode.Hex,m_CompilePC));
|
||||||
m_Section->CompileExit(m_CompilePC,-1,m_RegWorkingSet,CExitInfo::DoSysCall,TRUE,NULL);
|
m_Section->CompileExit(m_CompilePC,(DWORD)-1,m_RegWorkingSet,CExitInfo::DoSysCall,TRUE,NULL);
|
||||||
m_NextInstruction = END_BLOCK;
|
m_NextInstruction = END_BLOCK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2187,8 +2183,9 @@ void CRecompilerOps::SPECIAL_DSLLV (void) {
|
||||||
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(m_Opcode.Hex,m_CompilePC));
|
CPU_Message(" %X %s",m_CompilePC,R4300iOpcodeName(m_Opcode.Hex,m_CompilePC));
|
||||||
if (m_Opcode.rd == 0) { return; }
|
if (m_Opcode.rd == 0) { return; }
|
||||||
|
|
||||||
if (IsConst(m_Opcode.rs)) {
|
if (IsConst(m_Opcode.rs))
|
||||||
DWORD Shift = (cMipsRegLo(m_Opcode.rs) & 0x3F);
|
{
|
||||||
|
//DWORD Shift = (cMipsRegLo(m_Opcode.rs) & 0x3F);
|
||||||
CRecompilerOps::UnknownOpcode();
|
CRecompilerOps::UnknownOpcode();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -3539,7 +3536,7 @@ void CRecompilerOps::SPECIAL_SLTU (void) {
|
||||||
ProtectGPR(KnownReg);
|
ProtectGPR(KnownReg);
|
||||||
if (b32BitCore())
|
if (b32BitCore())
|
||||||
{
|
{
|
||||||
int TestReg = IsConst(KnownReg)?m_Opcode.rs:m_Opcode.rt;
|
DWORD TestReg = IsConst(KnownReg)?m_Opcode.rs:m_Opcode.rt;
|
||||||
if (IsConst(KnownReg)) {
|
if (IsConst(KnownReg)) {
|
||||||
DWORD Value = MipsRegLo(KnownReg);
|
DWORD Value = MipsRegLo(KnownReg);
|
||||||
Map_GPR_32bit(m_Opcode.rd,TRUE,-1);
|
Map_GPR_32bit(m_Opcode.rd,TRUE,-1);
|
||||||
|
@ -3547,7 +3544,8 @@ void CRecompilerOps::SPECIAL_SLTU (void) {
|
||||||
} else {
|
} else {
|
||||||
CompX86regToVariable(MipsRegMapLo(KnownReg),&_GPR[UnknownReg].W[0],CRegName::GPR_Lo[UnknownReg]);
|
CompX86regToVariable(MipsRegMapLo(KnownReg),&_GPR[UnknownReg].W[0],CRegName::GPR_Lo[UnknownReg]);
|
||||||
}
|
}
|
||||||
if (KnownReg == TestReg) {
|
if (KnownReg == TestReg)
|
||||||
|
{
|
||||||
SetaVariable(&m_BranchCompare,"m_BranchCompare");
|
SetaVariable(&m_BranchCompare,"m_BranchCompare");
|
||||||
} else {
|
} else {
|
||||||
SetbVariable(&m_BranchCompare,"m_BranchCompare");
|
SetbVariable(&m_BranchCompare,"m_BranchCompare");
|
||||||
|
@ -4036,7 +4034,7 @@ void CRecompilerOps::COP0_MT (void) {
|
||||||
} else {
|
} else {
|
||||||
MoveX86regToVariable(Map_TempReg(x86_Any,m_Opcode.rt,FALSE), &_CP0[m_Opcode.rd], CRegName::Cop0[m_Opcode.rd]);
|
MoveX86regToVariable(Map_TempReg(x86_Any,m_Opcode.rt,FALSE), &_CP0[m_Opcode.rd], CRegName::Cop0[m_Opcode.rd]);
|
||||||
}
|
}
|
||||||
AndConstToVariable(~CAUSE_IP7,&_Reg->FAKE_CAUSE_REGISTER,"FAKE_CAUSE_REGISTER");
|
AndConstToVariable((DWORD)~CAUSE_IP7,&_Reg->FAKE_CAUSE_REGISTER,"FAKE_CAUSE_REGISTER");
|
||||||
BeforeCallDirect(m_RegWorkingSet);
|
BeforeCallDirect(m_RegWorkingSet);
|
||||||
MoveConstToX86reg((DWORD)_SystemTimer,x86_ECX);
|
MoveConstToX86reg((DWORD)_SystemTimer,x86_ECX);
|
||||||
Call_Direct(AddressOf(&CSystemTimer::UpdateCompareTimer), "CSystemTimer::UpdateCompareTimer");
|
Call_Direct(AddressOf(&CSystemTimer::UpdateCompareTimer), "CSystemTimer::UpdateCompareTimer");
|
||||||
|
@ -4642,7 +4640,7 @@ void CRecompilerOps::COP1_S_CMP (void) {
|
||||||
MoveVariableToX86reg((BYTE *)&_FPR_S[Reg2],Name,TempReg);
|
MoveVariableToX86reg((BYTE *)&_FPR_S[Reg2],Name,TempReg);
|
||||||
fpuComDwordRegPointer(TempReg,FALSE);
|
fpuComDwordRegPointer(TempReg,FALSE);
|
||||||
}
|
}
|
||||||
AndConstToVariable(~FPCSR_C, &_FPCR[31], "_FPCR[31]");
|
AndConstToVariable((DWORD)~FPCSR_C, &_FPCR[31], "_FPCR[31]");
|
||||||
fpuStoreStatus();
|
fpuStoreStatus();
|
||||||
x86Reg Reg = Map_TempReg(x86_Any8Bit, 0, FALSE);
|
x86Reg Reg = Map_TempReg(x86_Any8Bit, 0, FALSE);
|
||||||
TestConstToX86Reg(cmp,x86_EAX);
|
TestConstToX86Reg(cmp,x86_EAX);
|
||||||
|
@ -4967,7 +4965,7 @@ void CRecompilerOps::COP1_D_CMP (void) {
|
||||||
Load_FPR_ToTop(Reg1,Reg1, CRegInfo::FPU_Double);
|
Load_FPR_ToTop(Reg1,Reg1, CRegInfo::FPU_Double);
|
||||||
fpuComQwordRegPointer(TempReg,FALSE);
|
fpuComQwordRegPointer(TempReg,FALSE);
|
||||||
}
|
}
|
||||||
AndConstToVariable(~FPCSR_C, &_FPCR[31], "_FPCR[31]");
|
AndConstToVariable((DWORD)~FPCSR_C, &_FPCR[31], "_FPCR[31]");
|
||||||
fpuStoreStatus();
|
fpuStoreStatus();
|
||||||
x86Reg Reg = Map_TempReg(x86_Any8Bit, 0, FALSE);
|
x86Reg Reg = Map_TempReg(x86_Any8Bit, 0, FALSE);
|
||||||
TestConstToX86Reg(cmp,x86_EAX);
|
TestConstToX86Reg(cmp,x86_EAX);
|
||||||
|
|
|
@ -3605,6 +3605,11 @@ void CX86Ops::SetJump32(DWORD * Loc, DWORD * JumpLoc)
|
||||||
|
|
||||||
void CX86Ops::SetJump8(BYTE * Loc, BYTE * JumpLoc)
|
void CX86Ops::SetJump8(BYTE * Loc, BYTE * JumpLoc)
|
||||||
{
|
{
|
||||||
|
if (Loc == NULL || JumpLoc == NULL)
|
||||||
|
{
|
||||||
|
_Notify->BreakPoint(__FILE__,__LINE__);
|
||||||
|
return;
|
||||||
|
}
|
||||||
DWORD diffrence = (DWORD)(((DWORD)JumpLoc) - (((DWORD)(Loc)) + 1));
|
DWORD diffrence = (DWORD)(((DWORD)JumpLoc) - (((DWORD)(Loc)) + 1));
|
||||||
if (diffrence > 255)
|
if (diffrence > 255)
|
||||||
{
|
{
|
||||||
|
|
|
@ -287,8 +287,8 @@ void CAudioPlugin::DacrateChanged (SystemType Type)
|
||||||
if (!Initilized()) { return; }
|
if (!Initilized()) { return; }
|
||||||
WriteTraceF(TraceAudio,__FUNCTION__ ": SystemType: %s", Type == SYSTEM_NTSC ? "SYSTEM_NTSC" : "SYSTEM_PAL");
|
WriteTraceF(TraceAudio,__FUNCTION__ ": SystemType: %s", Type == SYSTEM_NTSC ? "SYSTEM_NTSC" : "SYSTEM_PAL");
|
||||||
|
|
||||||
DWORD Frequency = _Reg->AI_DACRATE_REG * 30;
|
//DWORD Frequency = _Reg->AI_DACRATE_REG * 30;
|
||||||
DWORD CountsPerSecond = (_Reg->VI_V_SYNC_REG != 0 ? (_Reg->VI_V_SYNC_REG + 1) * _Settings->LoadDword(Game_ViRefreshRate) : 500000) * 60;
|
//DWORD CountsPerSecond = (_Reg->VI_V_SYNC_REG != 0 ? (_Reg->VI_V_SYNC_REG + 1) * _Settings->LoadDword(Game_ViRefreshRate) : 500000) * 60;
|
||||||
m_DacrateChanged(Type);
|
m_DacrateChanged(Type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -207,6 +207,7 @@ public:
|
||||||
void RegisterClass()
|
void RegisterClass()
|
||||||
{
|
{
|
||||||
T* pT = static_cast<T*>(this);
|
T* pT = static_cast<T*>(this);
|
||||||
|
pT = pT;
|
||||||
pT->GetWndClassInfo().m_wc.lpfnWndProc = m_pfnSuperWindowProc;
|
pT->GetWndClassInfo().m_wc.lpfnWndProc = m_pfnSuperWindowProc;
|
||||||
pT->GetWndClassInfo().Register( &m_pfnSuperWindowProc );
|
pT->GetWndClassInfo().Register( &m_pfnSuperWindowProc );
|
||||||
}
|
}
|
||||||
|
@ -3547,7 +3548,7 @@ public:
|
||||||
listSubItem.m_rgbBackground = m_rgbBackground;
|
listSubItem.m_rgbBackground = m_rgbBackground;
|
||||||
listSubItem.m_rgbText = m_rgbItemText;
|
listSubItem.m_rgbText = m_rgbItemText;
|
||||||
listSubItem.m_rgbSelectedText = m_rgbSelectedText;
|
listSubItem.m_rgbSelectedText = m_rgbSelectedText;
|
||||||
listSubItem.m_nMaxEditLen = -1;
|
listSubItem.m_nMaxEditLen = (UINT)-1;
|
||||||
|
|
||||||
CListItem< TData > listItem;
|
CListItem< TData > listItem;
|
||||||
for ( int nSubItem = 0; nSubItem < GetColumnCount(); nSubItem++ )
|
for ( int nSubItem = 0; nSubItem < GetColumnCount(); nSubItem++ )
|
||||||
|
|
Loading…
Reference in New Issue