iCore: Fix negative array index warning.

Codacy.
This commit is contained in:
lightningterror 2022-07-15 14:19:08 +02:00
parent e1e7791dff
commit 1594b46f68
1 changed files with 43 additions and 19 deletions

View File

@ -236,11 +236,19 @@ int _allocTempXMMreg(XMMSSEType type, int xmmreg)
else else
_freeXMMreg(xmmreg); _freeXMMreg(xmmreg);
xmmregs[xmmreg].inuse = 1; if (xmmreg == -1)
xmmregs[xmmreg].type = XMMTYPE_TEMP; {
xmmregs[xmmreg].needed = 1; pxFailDev("*PCSX2*: XMM Reg Allocation Error in _allocTempXMMreg()!");
xmmregs[xmmreg].counter = g_xmmAllocCounter++; throw Exception::FailedToAllocateRegister();
g_xmmtypes[xmmreg] = type; }
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; return xmmreg;
} }
@ -317,13 +325,21 @@ int _allocFPtoXMMreg(int xmmreg, int fpreg, int mode)
if (xmmreg == -1) if (xmmreg == -1)
xmmreg = _getFreeXMMreg(); xmmreg = _getFreeXMMreg();
g_xmmtypes[xmmreg] = XMMT_FPS; if (xmmreg == -1)
xmmregs[xmmreg].inuse = 1; {
xmmregs[xmmreg].type = XMMTYPE_FPREG; pxFailDev("*PCSX2*: XMM Reg Allocation Error in _allocFPtoXMMreg()!");
xmmregs[xmmreg].reg = fpreg; throw Exception::FailedToAllocateRegister();
xmmregs[xmmreg].mode = mode; }
xmmregs[xmmreg].needed = 1; else
xmmregs[xmmreg].counter = g_xmmAllocCounter++; {
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) if (mode & MODE_READ)
xMOVSSZX(xRegisterSSE(xmmreg), ptr[&fpuRegs.fpr[fpreg].f]); xMOVSSZX(xRegisterSSE(xmmreg), ptr[&fpuRegs.fpr[fpreg].f]);
@ -438,13 +454,21 @@ int _allocFPACCtoXMMreg(int xmmreg, int mode)
if (xmmreg == -1) if (xmmreg == -1)
xmmreg = _getFreeXMMreg(); xmmreg = _getFreeXMMreg();
g_xmmtypes[xmmreg] = XMMT_FPS; if (xmmreg == -1)
xmmregs[xmmreg].inuse = 1; {
xmmregs[xmmreg].type = XMMTYPE_FPACC; pxFailDev("*PCSX2*: XMM Reg Allocation Error in _allocFPACCtoXMMreg()!");
xmmregs[xmmreg].mode = mode; throw Exception::FailedToAllocateRegister();
xmmregs[xmmreg].needed = 1; }
xmmregs[xmmreg].reg = 0; else
xmmregs[xmmreg].counter = g_xmmAllocCounter++; {
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) if (mode & MODE_READ)
{ {