mirror of
https://github.com/webmproject/libwebp.git
synced 2024-12-27 06:08:21 +01:00
MIPS: move WORK_AROUND_GCC define to appropriate place
Change-Id: I3055eca57dc4e9d39533a5b8170bbf7af9cd818f
This commit is contained in:
parent
012d2c60fa
commit
a28c4b363d
@ -21,10 +21,6 @@
|
|||||||
#include "../enc/vp8enci.h"
|
#include "../enc/vp8enci.h"
|
||||||
#include "../enc/cost.h"
|
#include "../enc/cost.h"
|
||||||
|
|
||||||
#if defined(__GNUC__) && defined(__ANDROID__) && LOCAL_GCC_VERSION == 0x409
|
|
||||||
#define WORK_AROUND_GCC
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static const int kC1 = 20091 + (1 << 16);
|
static const int kC1 = 20091 + (1 << 16);
|
||||||
static const int kC2 = 35468;
|
static const int kC2 = 35468;
|
||||||
|
|
||||||
@ -630,6 +626,8 @@ int VP8GetResidualCostMIPS32(int ctx0, const VP8Residual* const res) {
|
|||||||
return cost;
|
return cost;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined(WORK_AROUND_GCC)
|
||||||
|
|
||||||
#define GET_SSE_INNER(A, B, C, D) \
|
#define GET_SSE_INNER(A, B, C, D) \
|
||||||
"lbu %[temp0], "#A"(%[a]) \n\t" \
|
"lbu %[temp0], "#A"(%[a]) \n\t" \
|
||||||
"lbu %[temp1], "#A"(%[b]) \n\t" \
|
"lbu %[temp1], "#A"(%[b]) \n\t" \
|
||||||
@ -654,7 +652,6 @@ int VP8GetResidualCostMIPS32(int ctx0, const VP8Residual* const res) {
|
|||||||
GET_SSE_INNER(C, C + 1, C + 2, C + 3) \
|
GET_SSE_INNER(C, C + 1, C + 2, C + 3) \
|
||||||
GET_SSE_INNER(D, D + 1, D + 2, D + 3)
|
GET_SSE_INNER(D, D + 1, D + 2, D + 3)
|
||||||
|
|
||||||
#if !defined(WORK_AROUND_GCC)
|
|
||||||
static int SSE16x16(const uint8_t* a, const uint8_t* b) {
|
static int SSE16x16(const uint8_t* a, const uint8_t* b) {
|
||||||
int count;
|
int count;
|
||||||
int temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7;
|
int temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7;
|
||||||
@ -684,7 +681,7 @@ static int SSE16x16(const uint8_t* a, const uint8_t* b) {
|
|||||||
[temp3]"=&r"(temp3), [temp4]"=&r"(temp4), [temp5]"=&r"(temp5),
|
[temp3]"=&r"(temp3), [temp4]"=&r"(temp4), [temp5]"=&r"(temp5),
|
||||||
[temp6]"=&r"(temp6), [temp7]"=&r"(temp7), [count]"=&r"(count)
|
[temp6]"=&r"(temp6), [temp7]"=&r"(temp7), [count]"=&r"(count)
|
||||||
: [a]"r"(a), [b]"r"(b)
|
: [a]"r"(a), [b]"r"(b)
|
||||||
: "memory", "hi" , "lo"
|
: "memory", "hi", "lo"
|
||||||
);
|
);
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
@ -710,7 +707,7 @@ static int SSE16x8(const uint8_t* a, const uint8_t* b) {
|
|||||||
[temp3]"=&r"(temp3), [temp4]"=&r"(temp4), [temp5]"=&r"(temp5),
|
[temp3]"=&r"(temp3), [temp4]"=&r"(temp4), [temp5]"=&r"(temp5),
|
||||||
[temp6]"=&r"(temp6), [temp7]"=&r"(temp7), [count]"=&r"(count)
|
[temp6]"=&r"(temp6), [temp7]"=&r"(temp7), [count]"=&r"(count)
|
||||||
: [a]"r"(a), [b]"r"(b)
|
: [a]"r"(a), [b]"r"(b)
|
||||||
: "memory", "hi" , "lo"
|
: "memory", "hi", "lo"
|
||||||
);
|
);
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
@ -732,7 +729,7 @@ static int SSE8x8(const uint8_t* a, const uint8_t* b) {
|
|||||||
[temp3]"=&r"(temp3), [temp4]"=&r"(temp4), [temp5]"=&r"(temp5),
|
[temp3]"=&r"(temp3), [temp4]"=&r"(temp4), [temp5]"=&r"(temp5),
|
||||||
[temp6]"=&r"(temp6), [temp7]"=&r"(temp7), [count]"=&r"(count)
|
[temp6]"=&r"(temp6), [temp7]"=&r"(temp7), [count]"=&r"(count)
|
||||||
: [a]"r"(a), [b]"r"(b)
|
: [a]"r"(a), [b]"r"(b)
|
||||||
: "memory", "hi" , "lo"
|
: "memory", "hi", "lo"
|
||||||
);
|
);
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
@ -751,15 +748,15 @@ static int SSE4x4(const uint8_t* a, const uint8_t* b) {
|
|||||||
[temp3]"=&r"(temp3), [temp4]"=&r"(temp4), [temp5]"=&r"(temp5),
|
[temp3]"=&r"(temp3), [temp4]"=&r"(temp4), [temp5]"=&r"(temp5),
|
||||||
[temp6]"=&r"(temp6), [temp7]"=&r"(temp7), [count]"=&r"(count)
|
[temp6]"=&r"(temp6), [temp7]"=&r"(temp7), [count]"=&r"(count)
|
||||||
: [a]"r"(a), [b]"r"(b)
|
: [a]"r"(a), [b]"r"(b)
|
||||||
: "memory", "hi" , "lo"
|
: "memory", "hi", "lo"
|
||||||
);
|
);
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // WORK_AROUND_GCC
|
#undef GET_SSE
|
||||||
|
#undef GET_SSE_INNER
|
||||||
|
|
||||||
#undef GET_SSE_MIPS32
|
#endif // !WORK_AROUND_GCC
|
||||||
#undef GET_SSE_MIPS32_INNER
|
|
||||||
|
|
||||||
#endif // WEBP_USE_MIPS32
|
#endif // WEBP_USE_MIPS32
|
||||||
|
|
||||||
|
@ -20,10 +20,6 @@
|
|||||||
#include "../enc/cost.h"
|
#include "../enc/cost.h"
|
||||||
#include "../enc/vp8enci.h"
|
#include "../enc/vp8enci.h"
|
||||||
|
|
||||||
#if defined(__GNUC__) && defined(__ANDROID__) && LOCAL_GCC_VERSION == 0x409
|
|
||||||
#define WORK_AROUND_GCC
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static const int kC1 = 20091 + (1 << 16);
|
static const int kC1 = 20091 + (1 << 16);
|
||||||
static const int kC2 = 35468;
|
static const int kC2 = 35468;
|
||||||
|
|
||||||
@ -1169,7 +1165,7 @@ static int SSE4x4(const uint8_t* a, const uint8_t* b) {
|
|||||||
#undef GET_SSE
|
#undef GET_SSE
|
||||||
#undef GET_SSE_INNER
|
#undef GET_SSE_INNER
|
||||||
|
|
||||||
#endif // WORK_AROUND_GCC
|
#endif // !WORK_AROUND_GCC
|
||||||
|
|
||||||
#undef FILL_8_OR_16
|
#undef FILL_8_OR_16
|
||||||
#undef FILL_PART
|
#undef FILL_PART
|
||||||
|
@ -12,6 +12,10 @@
|
|||||||
#ifndef WEBP_DSP_MIPS_MACRO_H_
|
#ifndef WEBP_DSP_MIPS_MACRO_H_
|
||||||
#define WEBP_DSP_MIPS_MACRO_H_
|
#define WEBP_DSP_MIPS_MACRO_H_
|
||||||
|
|
||||||
|
#if defined(__GNUC__) && defined(__ANDROID__) && LOCAL_GCC_VERSION == 0x409
|
||||||
|
#define WORK_AROUND_GCC
|
||||||
|
#endif
|
||||||
|
|
||||||
#define STR(s) #s
|
#define STR(s) #s
|
||||||
#define XSTR(s) STR(s)
|
#define XSTR(s) STR(s)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user