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