mirror of
https://github.com/webmproject/libwebp.git
synced 2024-12-28 14:38:21 +01:00
yuv_sse2: fix 32-bit visual studio build
src\dsp\yuv_sse2.c : C2719: 'in': formal parameter with __declspec(align('16')) won't be aligned src\dsp\yuv_sse2.c : C2719: 'out': formal parameter with __declspec(align('16')) won't be aligned Change-Id: Ifd79e33b35c70748faff19cd64eba4a8ffce5a5a
This commit is contained in:
parent
7badd3da4a
commit
357f455dec
@ -113,7 +113,8 @@ static WEBP_INLINE void PackAndStore4(const __m128i* const R,
|
|||||||
// Function used several times in PlanarTo24b.
|
// Function used several times in PlanarTo24b.
|
||||||
// It samples the in buffer as follows: one every two unsigned char is stored
|
// It samples the in buffer as follows: one every two unsigned char is stored
|
||||||
// at the beginning of the buffer, while the other half is stored at the end.
|
// at the beginning of the buffer, while the other half is stored at the end.
|
||||||
static WEBP_INLINE void PlanarTo24bHelper(const __m128i in[6], __m128i out[6]) {
|
static WEBP_INLINE void PlanarTo24bHelper(const __m128i* const in /*in[6]*/,
|
||||||
|
__m128i* const out /*out[6]*/) {
|
||||||
const __m128i v_mask = _mm_set1_epi16(0x00ff);
|
const __m128i v_mask = _mm_set1_epi16(0x00ff);
|
||||||
|
|
||||||
// Take one every two upper 8b values.
|
// Take one every two upper 8b values.
|
||||||
@ -132,7 +133,7 @@ static WEBP_INLINE void PlanarTo24bHelper(const __m128i in[6], __m128i out[6]) {
|
|||||||
// Pack the planar buffers
|
// Pack the planar buffers
|
||||||
// rrrr... rrrr... gggg... gggg... bbbb... bbbb....
|
// rrrr... rrrr... gggg... gggg... bbbb... bbbb....
|
||||||
// triplet by triplet in the output buffer rgb as rgbrgbrgbrgb ...
|
// triplet by triplet in the output buffer rgb as rgbrgbrgbrgb ...
|
||||||
static WEBP_INLINE void PlanarTo24b(__m128i in[6], uint8_t* rgb) {
|
static WEBP_INLINE void PlanarTo24b(__m128i* const in /*in[6]*/, uint8_t* rgb) {
|
||||||
// The input is 6 registers of sixteen 8b but for the sake of explanation,
|
// The input is 6 registers of sixteen 8b but for the sake of explanation,
|
||||||
// let's take 6 registers of four 8b values.
|
// let's take 6 registers of four 8b values.
|
||||||
// To pack, we will keep taking one every two 8b integer and move it
|
// To pack, we will keep taking one every two 8b integer and move it
|
||||||
@ -389,8 +390,8 @@ WEBP_TSAN_IGNORE_FUNCTION void WebPInitSamplersSSE2(void) {
|
|||||||
|
|
||||||
// Function that inserts a value of the second half of the in buffer in between
|
// Function that inserts a value of the second half of the in buffer in between
|
||||||
// every two char of the first half.
|
// every two char of the first half.
|
||||||
static WEBP_INLINE void RGB24PackedToPlanarHelper(const __m128i in[6],
|
static WEBP_INLINE void RGB24PackedToPlanarHelper(
|
||||||
__m128i out[6]) {
|
const __m128i* const in /*in[6]*/, __m128i* const out /*out[6]*/) {
|
||||||
out[0] = _mm_unpacklo_epi8(in[0], in[3]);
|
out[0] = _mm_unpacklo_epi8(in[0], in[3]);
|
||||||
out[1] = _mm_unpackhi_epi8(in[0], in[3]);
|
out[1] = _mm_unpackhi_epi8(in[0], in[3]);
|
||||||
out[2] = _mm_unpacklo_epi8(in[1], in[4]);
|
out[2] = _mm_unpacklo_epi8(in[1], in[4]);
|
||||||
@ -403,7 +404,7 @@ static WEBP_INLINE void RGB24PackedToPlanarHelper(const __m128i in[6],
|
|||||||
// rrrr... rrrr... gggg... gggg... bbbb... bbbb....
|
// rrrr... rrrr... gggg... gggg... bbbb... bbbb....
|
||||||
// Similar to PlanarTo24bHelper(), but in reverse order.
|
// Similar to PlanarTo24bHelper(), but in reverse order.
|
||||||
static WEBP_INLINE void RGB24PackedToPlanar(const uint8_t* const rgb,
|
static WEBP_INLINE void RGB24PackedToPlanar(const uint8_t* const rgb,
|
||||||
__m128i out[6]) {
|
__m128i* const out /*out[6]*/) {
|
||||||
__m128i tmp[6];
|
__m128i tmp[6];
|
||||||
tmp[0] = _mm_loadu_si128((const __m128i*)(rgb + 0));
|
tmp[0] = _mm_loadu_si128((const __m128i*)(rgb + 0));
|
||||||
tmp[1] = _mm_loadu_si128((const __m128i*)(rgb + 16));
|
tmp[1] = _mm_loadu_si128((const __m128i*)(rgb + 16));
|
||||||
|
Loading…
Reference in New Issue
Block a user