use memory for loop counter to work around nearly out of registers

TBR=harryjin@google.com
BUG=libyuv:533

Review URL: https://codereview.chromium.org/1535433003 .
This commit is contained in:
Frank Barchard 2015-12-16 17:13:37 -08:00
parent 029f926a14
commit 1ccbf8fb7b

View File

@ -1813,14 +1813,18 @@ void OMITFP I411ToARGBRow_SSSE3(const uint8* y_buf,
READYUV411_TEMP
YUVTORGB(yuvconstants)
STOREARGB
"sub $0x8,%[width] \n"
"subl $0x8,%[width] \n"
"jg 1b \n"
: [y_buf]"+r"(y_buf), // %[y_buf]
[u_buf]"+r"(u_buf), // %[u_buf]
[v_buf]"+r"(v_buf), // %[v_buf]
[dst_argb]"+r"(dst_argb), // %[dst_argb]
[temp]"+r"(temp), // %[temp]
#if defined(__i386__) && defined(__pic__)
[width]"+m"(width) // %[width]
#else
[width]"+rm"(width) // %[width]
#endif
: [yuvconstants]"r"(yuvconstants) // %[yuvconstants]
: "memory", "cc", NACL_R14 YUVTORGB_REGS
"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5"