scale ported to OSX for 32/64 bit. Required breaking up some functions into 2 or 3 asm inlines to set constants. Reworked storing of 6 bytes on all platforms for 3/4 scale by storing first 4 bytes and then storing last 4 bytes, overlapping 2, in order to stay within SSE2 registers.
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/582004
git-svn-id: http://libyuv.googlecode.com/svn/trunk@266 16f28f9a-4ce2-e073-06de-1de4eb20be90
diff --git a/source/row_posix.cc b/source/row_posix.cc
index 122b309..28b06b3 100644
--- a/source/row_posix.cc
+++ b/source/row_posix.cc
@@ -694,13 +694,9 @@
"movdqa %1,%%xmm3 \n"
"movdqa %2,%%xmm5 \n"
:
- : "m"(kARGBToU), // %0
- "m"(kARGBToV), // %1
- "m"(kAddUV128) // %2
- :
-#if defined(__SSE2__)
- "xmm3", "xmm4", "xmm5"
-#endif
+ : "m"(kARGBToU), // %0
+ "m"(kARGBToV), // %1
+ "m"(kAddUV128) // %2
);
asm volatile (
"sub %1,%2 \n"
@@ -762,10 +758,6 @@
: "m"(kARGBToU), // %0
"m"(kARGBToV), // %1
"m"(kAddUV128) // %2
- :
-#if defined(__SSE2__)
- "xmm3", "xmm4", "xmm5"
-#endif
);
asm volatile (
"sub %1,%2 \n"
@@ -905,10 +897,6 @@
: "m"(kBGRAToU), // %0
"m"(kBGRAToV), // %1
"m"(kAddUV128) // %2
- :
-#if defined(__SSE2__)
- "xmm3", "xmm4", "xmm5"
-#endif
);
asm volatile (
"sub %1,%2 \n"
@@ -970,10 +958,6 @@
: "m"(kBGRAToU), // %0
"m"(kBGRAToV), // %1
"m"(kAddUV128) // %2
- :
-#if defined(__SSE2__)
- "xmm3", "xmm4", "xmm5"
-#endif
);
asm volatile (
"sub %1,%2 \n"
@@ -1113,10 +1097,6 @@
: "m"(kABGRToU), // %0
"m"(kABGRToV), // %1
"m"(kAddUV128) // %2
- :
-#if defined(__SSE2__)
- "xmm3", "xmm4", "xmm5"
-#endif
);
asm volatile (
"sub %1,%2 \n"
@@ -1178,10 +1158,6 @@
: "m"(kABGRToU), // %0
"m"(kABGRToV), // %1
"m"(kAddUV128) // %2
- :
-#if defined(__SSE2__)
- "xmm3", "xmm4", "xmm5"
-#endif
);
asm volatile (
"sub %1,%2 \n"