Fix lossless encoding for MIPS.

Bug: webp:558
Change-Id: I3d3ddb64ed26a8d8ff5664664c5f20f6eadfeb4f
(cherry picked from commit e4cbcdd2b5)
This commit is contained in:
Vincent Rabaud 2022-03-01 13:38:29 +01:00 committed by James Zern
parent 8bac4561bf
commit 7cc4fd6115

View File

@ -347,24 +347,24 @@ static void GetCombinedEntropyUnrefined_MIPS32(const uint32_t X[],
static void AddVector_MIPS32(const uint32_t* pa, const uint32_t* pb, static void AddVector_MIPS32(const uint32_t* pa, const uint32_t* pb,
uint32_t* pout, int size) { uint32_t* pout, int size) {
uint32_t temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; uint32_t temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7;
const uint32_t end = ((size) / 4) * 4; const int end = ((size) / 4) * 4;
const uint32_t* const LoopEnd = pa + end; const uint32_t* const LoopEnd = pa + end;
int i; int i;
ASM_START ASM_START
ADD_TO_OUT(0, 4, 8, 12, 1, pa, pb, pout) ADD_TO_OUT(0, 4, 8, 12, 1, pa, pb, pout)
ASM_END_0 ASM_END_0
for (i = end; i < size; ++i) pout[i] = pa[i] + pb[i]; for (i = 0; i < size - end; ++i) pout[i] = pa[i] + pb[i];
} }
static void AddVectorEq_MIPS32(const uint32_t* pa, uint32_t* pout, int size) { static void AddVectorEq_MIPS32(const uint32_t* pa, uint32_t* pout, int size) {
uint32_t temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; uint32_t temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7;
const uint32_t end = ((size) / 4) * 4; const int end = ((size) / 4) * 4;
const uint32_t* const LoopEnd = pa + end; const uint32_t* const LoopEnd = pa + end;
int i; int i;
ASM_START ASM_START
ADD_TO_OUT(0, 4, 8, 12, 0, pa, pout, pout) ADD_TO_OUT(0, 4, 8, 12, 0, pa, pout, pout)
ASM_END_1 ASM_END_1
for (i = end; i < size; ++i) pout[i] += pa[i]; for (i = 0; i < size - end; ++i) pout[i] += pa[i];
} }
#undef ASM_END_1 #undef ASM_END_1