mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2026-02-08 18:56:43 +08:00
Affine function in 64 bit Mac use movd instead of movq for xmm to gpr.
BUG=69 TEST=NONE Review URL: https://webrtc-codereview.appspot.com/728011 git-svn-id: http://libyuv.googlecode.com/svn/trunk@323 16f28f9a-4ce2-e073-06de-1de4eb20be90
This commit is contained in:
parent
f3181b3cf9
commit
41f24bf8ca
@ -1,6 +1,6 @@
|
|||||||
Name: libyuv
|
Name: libyuv
|
||||||
URL: http://code.google.com/p/libyuv/
|
URL: http://code.google.com/p/libyuv/
|
||||||
Version: 322
|
Version: 323
|
||||||
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 322
|
#define LIBYUV_VERSION 323
|
||||||
|
|
||||||
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
|
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
|
||||||
|
|||||||
@ -3254,6 +3254,9 @@ void ARGBShadeRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width,
|
|||||||
// TODO(fbarchard): Find 64 bit way to avoid masking.
|
// TODO(fbarchard): Find 64 bit way to avoid masking.
|
||||||
// TODO(fbarchard): Investigate why 4 pixels is slower than 2 on Core2.
|
// TODO(fbarchard): Investigate why 4 pixels is slower than 2 on Core2.
|
||||||
// Copy ARGB pixels from source image with slope to a row of destination.
|
// Copy ARGB pixels from source image with slope to a row of destination.
|
||||||
|
// Caveat - in 64 bit, movd is used with 64 bit gpr due to Mac gcc producing
|
||||||
|
// an error if movq is used. movd %%xmm0,%1
|
||||||
|
|
||||||
void ARGBAffineRow_SSE2(const uint8* src_argb, int src_argb_stride,
|
void ARGBAffineRow_SSE2(const uint8* src_argb, int src_argb_stride,
|
||||||
uint8* dst_argb, const float* uv_dudv, int width) {
|
uint8* dst_argb, const float* uv_dudv, int width) {
|
||||||
intptr_t src_argb_stride_temp = src_argb_stride;
|
intptr_t src_argb_stride_temp = src_argb_stride;
|
||||||
@ -3286,7 +3289,7 @@ void ARGBAffineRow_SSE2(const uint8* src_argb, int src_argb_stride,
|
|||||||
"packssdw %%xmm1,%%xmm0 \n"
|
"packssdw %%xmm1,%%xmm0 \n"
|
||||||
"pmaddwd %%xmm5,%%xmm0 \n"
|
"pmaddwd %%xmm5,%%xmm0 \n"
|
||||||
#if defined(__x86_64__)
|
#if defined(__x86_64__)
|
||||||
"movq %%xmm0,%1 \n"
|
"movd %%xmm0,%1 \n"
|
||||||
"mov %1,%5 \n"
|
"mov %1,%5 \n"
|
||||||
"and $0x0fffffff,%1 \n"
|
"and $0x0fffffff,%1 \n"
|
||||||
"shr $32,%5 \n"
|
"shr $32,%5 \n"
|
||||||
@ -3303,7 +3306,7 @@ void ARGBAffineRow_SSE2(const uint8* src_argb, int src_argb_stride,
|
|||||||
"addps %%xmm4,%%xmm2 \n"
|
"addps %%xmm4,%%xmm2 \n"
|
||||||
"movq %%xmm1,(%2) \n"
|
"movq %%xmm1,(%2) \n"
|
||||||
#if defined(__x86_64__)
|
#if defined(__x86_64__)
|
||||||
"movq %%xmm0,%1 \n"
|
"movd %%xmm0,%1 \n"
|
||||||
"mov %1,%5 \n"
|
"mov %1,%5 \n"
|
||||||
"and $0x0fffffff,%1 \n"
|
"and $0x0fffffff,%1 \n"
|
||||||
"shr $32,%5 \n"
|
"shr $32,%5 \n"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user