Clean up flx68000PcLongJump remove more safety checks from release builds

This commit is contained in:
meepingsnesroms
2018-12-31 11:19:13 -08:00
parent 20f1e8b2ed
commit 8b008aa575
3 changed files with 49 additions and 17 deletions

View File

@@ -32,7 +32,6 @@ windows{
macx{
# QMAKE_CFLAGS += -std=c89 -D__STDBOOL_H -Dinline= -Dbool=char -Dtrue=1 -Dfalse=0 # tests C89 mode
# CONFIG += sdk_no_version_check # using 10.14 SDK which Qt only unofficialy supports
ICON = macos/Mu.icns
QMAKE_INFO_PLIST = macos/Info.plist
DEFINES += EMU_MULTITHREADED

View File

@@ -18,15 +18,25 @@ void flx68000PcLongJump(uint32_t newPc){
uint32_t dataBufferGuest;
uint32_t windowSize;
if(chips[CHIP_A0_ROM].inBootMode || newPc >= chips[CHIP_A0_ROM].start && newPc < chips[CHIP_A0_ROM].start + chips[CHIP_A0_ROM].lineSize){
dataBufferHost = (uintptr_t)palmRom;
dataBufferGuest = chips[CHIP_A0_ROM].start;
windowSize = chips[CHIP_A0_ROM].mask + 1;
}
else if(newPc >= chips[CHIP_DX_RAM].start && newPc < chips[CHIP_DX_RAM].start + chips[CHIP_DX_RAM].lineSize){
dataBufferHost = (uintptr_t)palmRam;
dataBufferGuest = chips[CHIP_DX_RAM].start;
windowSize = chips[CHIP_DX_RAM].mask + 1;
switch(bankType[START_BANK(newPc)]){
case CHIP_A0_ROM:
dataBufferHost = (uintptr_t)palmRom;
dataBufferGuest = chips[CHIP_A0_ROM].start;
windowSize = chips[CHIP_A0_ROM].mask + 1;
break;
case CHIP_DX_RAM:
dataBufferHost = (uintptr_t)palmRam;
dataBufferGuest = chips[CHIP_DX_RAM].start;
windowSize = chips[CHIP_DX_RAM].mask + 1;
break;
case CHIP_REGISTERS:
//needed for when EMU_NO_SAFETY is set and a function is run in the sandbox
dataBufferHost = (uintptr_t)palmReg;
dataBufferGuest = BANK_ADDRESS(START_BANK(newPc));
windowSize = REG_SIZE;
break;
}
memBase = dataBufferHost - dataBufferGuest - windowSize * ((newPc - dataBufferGuest) / windowSize);

View File

@@ -294,8 +294,12 @@ void setEmuRegister(uint32_t address, uint32_t value){
}
uint8_t getHwRegister8(uint32_t address){
if((address & 0x0000F000) != 0x0000F000)
#if !defined(EMU_NO_SAFETY)
if((address & 0x0000F000) != 0x0000F000){
setBusErrorTimeOut(address, false);
return 0x00;
}
#endif
address &= 0x00000FFF;
@@ -401,8 +405,12 @@ uint8_t getHwRegister8(uint32_t address){
}
uint16_t getHwRegister16(uint32_t address){
if((address & 0x0000F000) != 0x0000F000)
#if !defined(EMU_NO_SAFETY)
if((address & 0x0000F000) != 0x0000F000){
setBusErrorTimeOut(address, false);
return 0x0000;
}
#endif
address &= 0x00000FFF;
@@ -489,8 +497,12 @@ uint16_t getHwRegister16(uint32_t address){
}
uint32_t getHwRegister32(uint32_t address){
if((address & 0x0000F000) != 0x0000F000)
#if !defined(EMU_NO_SAFETY)
if((address & 0x0000F000) != 0x0000F000){
setBusErrorTimeOut(address, false);
return 0x00000000;
}
#endif
address &= 0x00000FFF;
@@ -516,10 +528,13 @@ uint32_t getHwRegister32(uint32_t address){
}
}
void setHwRegister8(uint32_t address, uint8_t value){
if((address & 0x0000F000) != 0x0000F000)
#if !defined(EMU_NO_SAFETY)
if((address & 0x0000F000) != 0x0000F000){
setBusErrorTimeOut(address, true);
return;
}
#endif
address &= 0x00000FFF;
@@ -669,8 +684,12 @@ void setHwRegister8(uint32_t address, uint8_t value){
}
void setHwRegister16(uint32_t address, uint16_t value){
if((address & 0x0000F000) != 0x0000F000)
#if !defined(EMU_NO_SAFETY)
if((address & 0x0000F000) != 0x0000F000){
setBusErrorTimeOut(address, true);
return;
}
#endif
address &= 0x00000FFF;
@@ -957,8 +976,12 @@ void setHwRegister16(uint32_t address, uint16_t value){
}
void setHwRegister32(uint32_t address, uint32_t value){
if((address & 0x0000F000) != 0x0000F000)
#if !defined(EMU_NO_SAFETY)
if((address & 0x0000F000) != 0x0000F000){
setBusErrorTimeOut(address, true);
return;
}
#endif
address &= 0x00000FFF;