mirror of
https://github.com/RetroDECK/Supermodel.git
synced 2025-03-06 14:27:44 +00:00
- Added a C fallback for inline assembly code when the compiler is not MSVC.
This commit is contained in:
parent
cbf28944a5
commit
357536ea5a
|
@ -1001,14 +1001,22 @@ void SCSP_w32(unsigned int addr,unsigned int val)
|
|||
addr&=0x1f;
|
||||
DebugLog("Slot %02X Reg %02X write dword %08X\n",slot,addr,val);
|
||||
//printf("Slot %02X Reg %02X write dword %08X\n",slot,addr,val);
|
||||
#ifdef _MSC_VER // MS VisualC++
|
||||
_asm rol val,16
|
||||
#else
|
||||
val = (val>>16)|(val<<16);
|
||||
#endif
|
||||
*((unsigned int *) (SCSP->Slots[slot].datab+(addr))) = val;
|
||||
SCSP_UpdateSlotReg(slot,addr&0x1f);
|
||||
SCSP_UpdateSlotReg(slot,(addr&0x1f)+2);
|
||||
}
|
||||
else if(addr<0x600)
|
||||
{
|
||||
#ifdef _MSC_VER // MS VisualC++
|
||||
_asm rol val,16
|
||||
#else
|
||||
val = (val>>16)|(val<<16);
|
||||
#endif
|
||||
*((unsigned int *) (SCSP->datab+((addr&0xff)))) = val;
|
||||
SCSP_UpdateReg(addr&0xff);
|
||||
SCSP_UpdateReg((addr&0xff)+2);
|
||||
|
@ -1019,7 +1027,11 @@ void SCSP_w32(unsigned int addr,unsigned int val)
|
|||
{
|
||||
#ifdef USEDSP
|
||||
//DSP
|
||||
_asm rol val,16
|
||||
#ifdef _MSC_VER // MS VisualC++
|
||||
_asm rol val,16
|
||||
#else
|
||||
val = (val>>16)|(val<<16);
|
||||
#endif
|
||||
if(addr<0x780) //COEF
|
||||
*((unsigned int *) (SCSP->DSP.COEF+(addr-0x700)/2))=val;
|
||||
else if(addr<0x800)
|
||||
|
|
Loading…
Reference in a new issue