mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2025-12-06 16:56:55 +08:00
Remove code alignment declspec from Visual C versions for vs2014 compatibility.
BUG=422 TESTED=local vs2013 build still passes. Review URL: https://webrtc-codereview.appspot.com/45959004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@1365 16f28f9a-4ce2-e073-06de-1de4eb20be90
This commit is contained in:
parent
1eb51bcf01
commit
c7161d1c36
@ -1,6 +1,6 @@
|
|||||||
Name: libyuv
|
Name: libyuv
|
||||||
URL: http://code.google.com/p/libyuv/
|
URL: http://code.google.com/p/libyuv/
|
||||||
Version: 1364
|
Version: 1365
|
||||||
License: BSD
|
License: BSD
|
||||||
License File: LICENSE
|
License File: LICENSE
|
||||||
|
|
||||||
|
|||||||
@ -11,6 +11,6 @@
|
|||||||
#ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
|
#ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
|
||||||
#define INCLUDE_LIBYUV_VERSION_H_
|
#define INCLUDE_LIBYUV_VERSION_H_
|
||||||
|
|
||||||
#define LIBYUV_VERSION 1364
|
#define LIBYUV_VERSION 1365
|
||||||
|
|
||||||
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
|
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
|
||||||
|
|||||||
@ -19,7 +19,7 @@ extern "C" {
|
|||||||
#if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \
|
#if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \
|
||||||
defined(_MSC_VER) && !defined(__clang__)
|
defined(_MSC_VER) && !defined(__clang__)
|
||||||
|
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
uint32 SumSquareError_SSE2(const uint8* src_a, const uint8* src_b, int count) {
|
uint32 SumSquareError_SSE2(const uint8* src_a, const uint8* src_b, int count) {
|
||||||
__asm {
|
__asm {
|
||||||
mov eax, [esp + 4] // src_a
|
mov eax, [esp + 4] // src_a
|
||||||
@ -60,7 +60,7 @@ uint32 SumSquareError_SSE2(const uint8* src_a, const uint8* src_b, int count) {
|
|||||||
#if _MSC_VER >= 1700
|
#if _MSC_VER >= 1700
|
||||||
// C4752: found Intel(R) Advanced Vector Extensions; consider using /arch:AVX.
|
// C4752: found Intel(R) Advanced Vector Extensions; consider using /arch:AVX.
|
||||||
#pragma warning(disable: 4752)
|
#pragma warning(disable: 4752)
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
uint32 SumSquareError_AVX2(const uint8* src_a, const uint8* src_b, int count) {
|
uint32 SumSquareError_AVX2(const uint8* src_a, const uint8* src_b, int count) {
|
||||||
__asm {
|
__asm {
|
||||||
mov eax, [esp + 4] // src_a
|
mov eax, [esp + 4] // src_a
|
||||||
@ -134,7 +134,7 @@ static uvec32 kHashMul3 = {
|
|||||||
#define pmulld(reg) _asm _emit 0x66 _asm _emit 0x0F _asm _emit 0x38 \
|
#define pmulld(reg) _asm _emit 0x66 _asm _emit 0x0F _asm _emit 0x38 \
|
||||||
_asm _emit 0x40 _asm _emit reg
|
_asm _emit 0x40 _asm _emit reg
|
||||||
|
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
uint32 HashDjb2_SSE41(const uint8* src, int count, uint32 seed) {
|
uint32 HashDjb2_SSE41(const uint8* src, int count, uint32 seed) {
|
||||||
__asm {
|
__asm {
|
||||||
mov eax, [esp + 4] // src
|
mov eax, [esp + 4] // src
|
||||||
@ -185,7 +185,7 @@ uint32 HashDjb2_SSE41(const uint8* src, int count, uint32 seed) {
|
|||||||
|
|
||||||
// Visual C 2012 required for AVX2.
|
// Visual C 2012 required for AVX2.
|
||||||
#if _MSC_VER >= 1700
|
#if _MSC_VER >= 1700
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
uint32 HashDjb2_AVX2(const uint8* src, int count, uint32 seed) {
|
uint32 HashDjb2_AVX2(const uint8* src, int count, uint32 seed) {
|
||||||
__asm {
|
__asm {
|
||||||
mov eax, [esp + 4] // src
|
mov eax, [esp + 4] // src
|
||||||
|
|||||||
@ -23,7 +23,7 @@ extern "C" {
|
|||||||
#ifdef ENABLE_SCASB
|
#ifdef ENABLE_SCASB
|
||||||
|
|
||||||
// Multiple of 1.
|
// Multiple of 1.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
const uint8* ScanRow_ERMS(const uint8* src, uint32 val, int count) {
|
const uint8* ScanRow_ERMS(const uint8* src, uint32 val, int count) {
|
||||||
__asm {
|
__asm {
|
||||||
mov edx, edi
|
mov edx, edi
|
||||||
|
|||||||
@ -73,7 +73,7 @@ void TransposeUVWx8_MIPS_DSPR2(const uint8* src, int src_stride,
|
|||||||
#if !defined(LIBYUV_DISABLE_X86) && \
|
#if !defined(LIBYUV_DISABLE_X86) && \
|
||||||
defined(_M_IX86) && defined(_MSC_VER) && !defined(__clang__)
|
defined(_M_IX86) && defined(_MSC_VER) && !defined(__clang__)
|
||||||
#define HAS_TRANSPOSE_WX8_SSSE3
|
#define HAS_TRANSPOSE_WX8_SSSE3
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
static void TransposeWx8_SSSE3(const uint8* src, int src_stride,
|
static void TransposeWx8_SSSE3(const uint8* src, int src_stride,
|
||||||
uint8* dst, int dst_stride, int width) {
|
uint8* dst, int dst_stride, int width) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -165,7 +165,7 @@ static void TransposeWx8_SSSE3(const uint8* src, int src_stride,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define HAS_TRANSPOSE_UVWX8_SSE2
|
#define HAS_TRANSPOSE_UVWX8_SSE2
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
static void TransposeUVWx8_SSE2(const uint8* src, int src_stride,
|
static void TransposeUVWx8_SSE2(const uint8* src, int src_stride,
|
||||||
uint8* dst_a, int dst_stride_a,
|
uint8* dst_a, int dst_stride_a,
|
||||||
uint8* dst_b, int dst_stride_b,
|
uint8* dst_b, int dst_stride_b,
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -95,7 +95,7 @@ static uvec16 kScaleAb2 =
|
|||||||
{ 65536 / 3, 65536 / 3, 65536 / 2, 65536 / 3, 65536 / 3, 65536 / 2, 0, 0 };
|
{ 65536 / 3, 65536 / 3, 65536 / 2, 65536 / 3, 65536 / 3, 65536 / 2, 0, 0 };
|
||||||
|
|
||||||
// Reads 32 pixels, throws half away and writes 16 pixels.
|
// Reads 32 pixels, throws half away and writes 16 pixels.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleRowDown2_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
void ScaleRowDown2_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
||||||
uint8* dst_ptr, int dst_width) {
|
uint8* dst_ptr, int dst_width) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -121,7 +121,7 @@ void ScaleRowDown2_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Blends 32x1 rectangle to 16x1.
|
// Blends 32x1 rectangle to 16x1.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleRowDown2Linear_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
void ScaleRowDown2Linear_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
||||||
uint8* dst_ptr, int dst_width) {
|
uint8* dst_ptr, int dst_width) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -157,7 +157,7 @@ void ScaleRowDown2Linear_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Blends 32x2 rectangle to 16x1.
|
// Blends 32x2 rectangle to 16x1.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleRowDown2Box_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
void ScaleRowDown2Box_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
||||||
uint8* dst_ptr, int dst_width) {
|
uint8* dst_ptr, int dst_width) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -200,7 +200,7 @@ void ScaleRowDown2Box_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
|||||||
|
|
||||||
#ifdef HAS_SCALEROWDOWN2_AVX2
|
#ifdef HAS_SCALEROWDOWN2_AVX2
|
||||||
// Reads 64 pixels, throws half away and writes 32 pixels.
|
// Reads 64 pixels, throws half away and writes 32 pixels.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleRowDown2_AVX2(const uint8* src_ptr, ptrdiff_t src_stride,
|
void ScaleRowDown2_AVX2(const uint8* src_ptr, ptrdiff_t src_stride,
|
||||||
uint8* dst_ptr, int dst_width) {
|
uint8* dst_ptr, int dst_width) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -228,7 +228,7 @@ void ScaleRowDown2_AVX2(const uint8* src_ptr, ptrdiff_t src_stride,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Blends 64x1 rectangle to 32x1.
|
// Blends 64x1 rectangle to 32x1.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleRowDown2Linear_AVX2(const uint8* src_ptr, ptrdiff_t src_stride,
|
void ScaleRowDown2Linear_AVX2(const uint8* src_ptr, ptrdiff_t src_stride,
|
||||||
uint8* dst_ptr, int dst_width) {
|
uint8* dst_ptr, int dst_width) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -265,7 +265,7 @@ void ScaleRowDown2Linear_AVX2(const uint8* src_ptr, ptrdiff_t src_stride,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Blends 64x2 rectangle to 32x1.
|
// Blends 64x2 rectangle to 32x1.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleRowDown2Box_AVX2(const uint8* src_ptr, ptrdiff_t src_stride,
|
void ScaleRowDown2Box_AVX2(const uint8* src_ptr, ptrdiff_t src_stride,
|
||||||
uint8* dst_ptr, int dst_width) {
|
uint8* dst_ptr, int dst_width) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -307,7 +307,7 @@ void ScaleRowDown2Box_AVX2(const uint8* src_ptr, ptrdiff_t src_stride,
|
|||||||
#endif // HAS_SCALEROWDOWN2_AVX2
|
#endif // HAS_SCALEROWDOWN2_AVX2
|
||||||
|
|
||||||
// Point samples 32 pixels to 8 pixels.
|
// Point samples 32 pixels to 8 pixels.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleRowDown4_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
void ScaleRowDown4_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
||||||
uint8* dst_ptr, int dst_width) {
|
uint8* dst_ptr, int dst_width) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -338,7 +338,7 @@ void ScaleRowDown4_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Blends 32x4 rectangle to 8x1.
|
// Blends 32x4 rectangle to 8x1.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleRowDown4Box_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
void ScaleRowDown4Box_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
||||||
uint8* dst_ptr, int dst_width) {
|
uint8* dst_ptr, int dst_width) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -401,7 +401,7 @@ void ScaleRowDown4Box_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
|||||||
// Then shuffled to do the scaling.
|
// Then shuffled to do the scaling.
|
||||||
|
|
||||||
// Note that movdqa+palign may be better than movdqu.
|
// Note that movdqa+palign may be better than movdqu.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleRowDown34_SSSE3(const uint8* src_ptr, ptrdiff_t src_stride,
|
void ScaleRowDown34_SSSE3(const uint8* src_ptr, ptrdiff_t src_stride,
|
||||||
uint8* dst_ptr, int dst_width) {
|
uint8* dst_ptr, int dst_width) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -448,7 +448,7 @@ void ScaleRowDown34_SSSE3(const uint8* src_ptr, ptrdiff_t src_stride,
|
|||||||
// xmm7 kRound34
|
// xmm7 kRound34
|
||||||
|
|
||||||
// Note that movdqa+palign may be better than movdqu.
|
// Note that movdqa+palign may be better than movdqu.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleRowDown34_1_Box_SSSE3(const uint8* src_ptr,
|
void ScaleRowDown34_1_Box_SSSE3(const uint8* src_ptr,
|
||||||
ptrdiff_t src_stride,
|
ptrdiff_t src_stride,
|
||||||
uint8* dst_ptr, int dst_width) {
|
uint8* dst_ptr, int dst_width) {
|
||||||
@ -505,7 +505,7 @@ void ScaleRowDown34_1_Box_SSSE3(const uint8* src_ptr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Note that movdqa+palign may be better than movdqu.
|
// Note that movdqa+palign may be better than movdqu.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleRowDown34_0_Box_SSSE3(const uint8* src_ptr,
|
void ScaleRowDown34_0_Box_SSSE3(const uint8* src_ptr,
|
||||||
ptrdiff_t src_stride,
|
ptrdiff_t src_stride,
|
||||||
uint8* dst_ptr, int dst_width) {
|
uint8* dst_ptr, int dst_width) {
|
||||||
@ -567,7 +567,7 @@ void ScaleRowDown34_0_Box_SSSE3(const uint8* src_ptr,
|
|||||||
// 3/8 point sampler
|
// 3/8 point sampler
|
||||||
|
|
||||||
// Scale 32 pixels to 12
|
// Scale 32 pixels to 12
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleRowDown38_SSSE3(const uint8* src_ptr, ptrdiff_t src_stride,
|
void ScaleRowDown38_SSSE3(const uint8* src_ptr, ptrdiff_t src_stride,
|
||||||
uint8* dst_ptr, int dst_width) {
|
uint8* dst_ptr, int dst_width) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -598,7 +598,7 @@ void ScaleRowDown38_SSSE3(const uint8* src_ptr, ptrdiff_t src_stride,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Scale 16x3 pixels to 6x1 with interpolation
|
// Scale 16x3 pixels to 6x1 with interpolation
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleRowDown38_3_Box_SSSE3(const uint8* src_ptr,
|
void ScaleRowDown38_3_Box_SSSE3(const uint8* src_ptr,
|
||||||
ptrdiff_t src_stride,
|
ptrdiff_t src_stride,
|
||||||
uint8* dst_ptr, int dst_width) {
|
uint8* dst_ptr, int dst_width) {
|
||||||
@ -663,7 +663,7 @@ void ScaleRowDown38_3_Box_SSSE3(const uint8* src_ptr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Scale 16x2 pixels to 6x1 with interpolation
|
// Scale 16x2 pixels to 6x1 with interpolation
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleRowDown38_2_Box_SSSE3(const uint8* src_ptr,
|
void ScaleRowDown38_2_Box_SSSE3(const uint8* src_ptr,
|
||||||
ptrdiff_t src_stride,
|
ptrdiff_t src_stride,
|
||||||
uint8* dst_ptr, int dst_width) {
|
uint8* dst_ptr, int dst_width) {
|
||||||
@ -709,7 +709,7 @@ void ScaleRowDown38_2_Box_SSSE3(const uint8* src_ptr,
|
|||||||
|
|
||||||
// Reads 16xN bytes and produces 16 shorts at a time.
|
// Reads 16xN bytes and produces 16 shorts at a time.
|
||||||
// TODO(fbarchard): Make this handle 4xN bytes for any width ARGB.
|
// TODO(fbarchard): Make this handle 4xN bytes for any width ARGB.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleAddRows_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
void ScaleAddRows_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
||||||
uint16* dst_ptr, int src_width,
|
uint16* dst_ptr, int src_width,
|
||||||
int src_height) {
|
int src_height) {
|
||||||
@ -775,7 +775,7 @@ void ScaleAddRows_SSE2(const uint8* src_ptr, ptrdiff_t src_stride,
|
|||||||
// when drmemory bug fixed.
|
// when drmemory bug fixed.
|
||||||
// https://code.google.com/p/drmemory/issues/detail?id=1396
|
// https://code.google.com/p/drmemory/issues/detail?id=1396
|
||||||
|
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleFilterCols_SSSE3(uint8* dst_ptr, const uint8* src_ptr,
|
void ScaleFilterCols_SSSE3(uint8* dst_ptr, const uint8* src_ptr,
|
||||||
int dst_width, int x, int dx) {
|
int dst_width, int x, int dx) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -852,7 +852,7 @@ void ScaleFilterCols_SSSE3(uint8* dst_ptr, const uint8* src_ptr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Reads 16 pixels, duplicates them and writes 32 pixels.
|
// Reads 16 pixels, duplicates them and writes 32 pixels.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleColsUp2_SSE2(uint8* dst_ptr, const uint8* src_ptr,
|
void ScaleColsUp2_SSE2(uint8* dst_ptr, const uint8* src_ptr,
|
||||||
int dst_width, int x, int dx) {
|
int dst_width, int x, int dx) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -877,7 +877,7 @@ void ScaleColsUp2_SSE2(uint8* dst_ptr, const uint8* src_ptr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Reads 8 pixels, throws half away and writes 4 even pixels (0, 2, 4, 6)
|
// Reads 8 pixels, throws half away and writes 4 even pixels (0, 2, 4, 6)
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleARGBRowDown2_SSE2(const uint8* src_argb,
|
void ScaleARGBRowDown2_SSE2(const uint8* src_argb,
|
||||||
ptrdiff_t src_stride,
|
ptrdiff_t src_stride,
|
||||||
uint8* dst_argb, int dst_width) {
|
uint8* dst_argb, int dst_width) {
|
||||||
@ -902,7 +902,7 @@ void ScaleARGBRowDown2_SSE2(const uint8* src_argb,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Blends 8x1 rectangle to 4x1.
|
// Blends 8x1 rectangle to 4x1.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleARGBRowDown2Linear_SSE2(const uint8* src_argb,
|
void ScaleARGBRowDown2Linear_SSE2(const uint8* src_argb,
|
||||||
ptrdiff_t src_stride,
|
ptrdiff_t src_stride,
|
||||||
uint8* dst_argb, int dst_width) {
|
uint8* dst_argb, int dst_width) {
|
||||||
@ -930,7 +930,7 @@ void ScaleARGBRowDown2Linear_SSE2(const uint8* src_argb,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Blends 8x2 rectangle to 4x1.
|
// Blends 8x2 rectangle to 4x1.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleARGBRowDown2Box_SSE2(const uint8* src_argb,
|
void ScaleARGBRowDown2Box_SSE2(const uint8* src_argb,
|
||||||
ptrdiff_t src_stride,
|
ptrdiff_t src_stride,
|
||||||
uint8* dst_argb, int dst_width) {
|
uint8* dst_argb, int dst_width) {
|
||||||
@ -964,7 +964,7 @@ void ScaleARGBRowDown2Box_SSE2(const uint8* src_argb,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Reads 4 pixels at a time.
|
// Reads 4 pixels at a time.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleARGBRowDownEven_SSE2(const uint8* src_argb, ptrdiff_t src_stride,
|
void ScaleARGBRowDownEven_SSE2(const uint8* src_argb, ptrdiff_t src_stride,
|
||||||
int src_stepx,
|
int src_stepx,
|
||||||
uint8* dst_argb, int dst_width) {
|
uint8* dst_argb, int dst_width) {
|
||||||
@ -1000,7 +1000,7 @@ void ScaleARGBRowDownEven_SSE2(const uint8* src_argb, ptrdiff_t src_stride,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Blends four 2x2 to 4x1.
|
// Blends four 2x2 to 4x1.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleARGBRowDownEvenBox_SSE2(const uint8* src_argb,
|
void ScaleARGBRowDownEvenBox_SSE2(const uint8* src_argb,
|
||||||
ptrdiff_t src_stride,
|
ptrdiff_t src_stride,
|
||||||
int src_stepx,
|
int src_stepx,
|
||||||
@ -1048,7 +1048,7 @@ void ScaleARGBRowDownEvenBox_SSE2(const uint8* src_argb,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Column scaling unfiltered. SSE2 version.
|
// Column scaling unfiltered. SSE2 version.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleARGBCols_SSE2(uint8* dst_argb, const uint8* src_argb,
|
void ScaleARGBCols_SSE2(uint8* dst_argb, const uint8* src_argb,
|
||||||
int dst_width, int x, int dx) {
|
int dst_width, int x, int dx) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -1139,7 +1139,7 @@ static uvec8 kShuffleFractions = {
|
|||||||
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 4u, 4u, 4u, 4u, 4u, 4u, 4u, 4u,
|
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 4u, 4u, 4u, 4u, 4u, 4u, 4u, 4u,
|
||||||
};
|
};
|
||||||
|
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleARGBFilterCols_SSSE3(uint8* dst_argb, const uint8* src_argb,
|
void ScaleARGBFilterCols_SSSE3(uint8* dst_argb, const uint8* src_argb,
|
||||||
int dst_width, int x, int dx) {
|
int dst_width, int x, int dx) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -1210,7 +1210,7 @@ void ScaleARGBFilterCols_SSSE3(uint8* dst_argb, const uint8* src_argb,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Reads 4 pixels, duplicates them and writes 8 pixels.
|
// Reads 4 pixels, duplicates them and writes 8 pixels.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
void ScaleARGBColsUp2_SSE2(uint8* dst_argb, const uint8* src_argb,
|
void ScaleARGBColsUp2_SSE2(uint8* dst_argb, const uint8* src_argb,
|
||||||
int dst_width, int x, int dx) {
|
int dst_width, int x, int dx) {
|
||||||
__asm {
|
__asm {
|
||||||
@ -1235,7 +1235,7 @@ void ScaleARGBColsUp2_SSE2(uint8* dst_argb, const uint8* src_argb,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Divide num by div and return as 16.16 fixed point result.
|
// Divide num by div and return as 16.16 fixed point result.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
int FixedDiv_X86(int num, int div) {
|
int FixedDiv_X86(int num, int div) {
|
||||||
__asm {
|
__asm {
|
||||||
mov eax, [esp + 4] // num
|
mov eax, [esp + 4] // num
|
||||||
@ -1248,7 +1248,7 @@ int FixedDiv_X86(int num, int div) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Divide num by div and return as 16.16 fixed point result.
|
// Divide num by div and return as 16.16 fixed point result.
|
||||||
__declspec(naked) __declspec(align(16))
|
__declspec(naked)
|
||||||
int FixedDiv1_X86(int num, int div) {
|
int FixedDiv1_X86(int num, int div) {
|
||||||
__asm {
|
__asm {
|
||||||
mov eax, [esp + 4] // num
|
mov eax, [esp + 4] // num
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user