mirror of https://github.com/PCSX2/pcsx2.git
parent
e1e7791dff
commit
1594b46f68
|
@ -236,11 +236,19 @@ int _allocTempXMMreg(XMMSSEType type, int xmmreg)
|
|||
else
|
||||
_freeXMMreg(xmmreg);
|
||||
|
||||
xmmregs[xmmreg].inuse = 1;
|
||||
xmmregs[xmmreg].type = XMMTYPE_TEMP;
|
||||
xmmregs[xmmreg].needed = 1;
|
||||
xmmregs[xmmreg].counter = g_xmmAllocCounter++;
|
||||
g_xmmtypes[xmmreg] = type;
|
||||
if (xmmreg == -1)
|
||||
{
|
||||
pxFailDev("*PCSX2*: XMM Reg Allocation Error in _allocTempXMMreg()!");
|
||||
throw Exception::FailedToAllocateRegister();
|
||||
}
|
||||
else
|
||||
{
|
||||
xmmregs[xmmreg].inuse = 1;
|
||||
xmmregs[xmmreg].type = XMMTYPE_TEMP;
|
||||
xmmregs[xmmreg].needed = 1;
|
||||
xmmregs[xmmreg].counter = g_xmmAllocCounter++;
|
||||
g_xmmtypes[xmmreg] = type;
|
||||
}
|
||||
|
||||
return xmmreg;
|
||||
}
|
||||
|
@ -317,13 +325,21 @@ int _allocFPtoXMMreg(int xmmreg, int fpreg, int mode)
|
|||
if (xmmreg == -1)
|
||||
xmmreg = _getFreeXMMreg();
|
||||
|
||||
g_xmmtypes[xmmreg] = XMMT_FPS;
|
||||
xmmregs[xmmreg].inuse = 1;
|
||||
xmmregs[xmmreg].type = XMMTYPE_FPREG;
|
||||
xmmregs[xmmreg].reg = fpreg;
|
||||
xmmregs[xmmreg].mode = mode;
|
||||
xmmregs[xmmreg].needed = 1;
|
||||
xmmregs[xmmreg].counter = g_xmmAllocCounter++;
|
||||
if (xmmreg == -1)
|
||||
{
|
||||
pxFailDev("*PCSX2*: XMM Reg Allocation Error in _allocFPtoXMMreg()!");
|
||||
throw Exception::FailedToAllocateRegister();
|
||||
}
|
||||
else
|
||||
{
|
||||
g_xmmtypes[xmmreg] = XMMT_FPS;
|
||||
xmmregs[xmmreg].inuse = 1;
|
||||
xmmregs[xmmreg].type = XMMTYPE_FPREG;
|
||||
xmmregs[xmmreg].reg = fpreg;
|
||||
xmmregs[xmmreg].mode = mode;
|
||||
xmmregs[xmmreg].needed = 1;
|
||||
xmmregs[xmmreg].counter = g_xmmAllocCounter++;
|
||||
}
|
||||
|
||||
if (mode & MODE_READ)
|
||||
xMOVSSZX(xRegisterSSE(xmmreg), ptr[&fpuRegs.fpr[fpreg].f]);
|
||||
|
@ -438,13 +454,21 @@ int _allocFPACCtoXMMreg(int xmmreg, int mode)
|
|||
if (xmmreg == -1)
|
||||
xmmreg = _getFreeXMMreg();
|
||||
|
||||
g_xmmtypes[xmmreg] = XMMT_FPS;
|
||||
xmmregs[xmmreg].inuse = 1;
|
||||
xmmregs[xmmreg].type = XMMTYPE_FPACC;
|
||||
xmmregs[xmmreg].mode = mode;
|
||||
xmmregs[xmmreg].needed = 1;
|
||||
xmmregs[xmmreg].reg = 0;
|
||||
xmmregs[xmmreg].counter = g_xmmAllocCounter++;
|
||||
if (xmmreg == -1)
|
||||
{
|
||||
pxFailDev("*PCSX2*: XMM Reg Allocation Error in _allocFPACCtoXMMreg()!");
|
||||
throw Exception::FailedToAllocateRegister();
|
||||
}
|
||||
else
|
||||
{
|
||||
g_xmmtypes[xmmreg] = XMMT_FPS;
|
||||
xmmregs[xmmreg].inuse = 1;
|
||||
xmmregs[xmmreg].type = XMMTYPE_FPACC;
|
||||
xmmregs[xmmreg].mode = mode;
|
||||
xmmregs[xmmreg].needed = 1;
|
||||
xmmregs[xmmreg].reg = 0;
|
||||
xmmregs[xmmreg].counter = g_xmmAllocCounter++;
|
||||
}
|
||||
|
||||
if (mode & MODE_READ)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue