mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2026-10-28 18:07:12 +08:00
Fix missing inline asm register clobbers
Change-Id: Ic573c8d7d8921a1dd00e4481b854a8168d0c94f7
This commit is contained in:
parent
9456b06227
commit
f73b79a70b
@ -1670,8 +1670,8 @@ void YUY2ToNVUVRow_NEON(const uint8_t* src_yuy2,
|
||||
"+r"(dst_uv), // %2
|
||||
"+r"(width) // %3
|
||||
:
|
||||
: "cc", "memory", "d0", "d1", "d2", "d3", "d4", "d5", "d6",
|
||||
"d7" // Clobber List
|
||||
: "cc", "memory", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8",
|
||||
"d9" // Clobber List
|
||||
);
|
||||
}
|
||||
|
||||
@ -2981,8 +2981,8 @@ void ARGBSepiaRow_NEON(uint8_t* dst_argb, int width) {
|
||||
: "+r"(dst_argb), // %0
|
||||
"+r"(width) // %1
|
||||
:
|
||||
: "cc", "memory", "q0", "q1", "q2", "q3", "q10", "q11", "q12", "q13",
|
||||
"q14", "q15");
|
||||
: "cc", "memory", "q0", "q1", "q2", "q3", "q8", "q10", "q11", "q12",
|
||||
"q13", "q14", "q15");
|
||||
}
|
||||
|
||||
// Tranform 8 ARGB pixels (32 bytes) with color matrix.
|
||||
|
||||
@ -2148,7 +2148,7 @@ void ARGB1555ToARGBRow_NEON(const uint8_t* src_argb1555,
|
||||
"+r"(dst_argb), // %1
|
||||
"+r"(width) // %2
|
||||
:
|
||||
: "cc", "memory", "v0", "v1", "v2", "v3", "v29" // Clobber List
|
||||
: "cc", "memory", "v0", "v1", "v2", "v3", "v4", "v29" // Clobber List
|
||||
);
|
||||
}
|
||||
|
||||
@ -3489,7 +3489,8 @@ void ARGB4444ToYRow_NEON(const uint8_t* src_argb4444,
|
||||
"+r"(dst_y), // %1
|
||||
"+r"(width) // %2
|
||||
:
|
||||
: "cc", "memory", "v0", "v1", "v2", "v3", "v24", "v25", "v26", "v27");
|
||||
: "cc", "memory", "v0", "v1", "v2", "v3", "v16", "v17", "v24", "v25",
|
||||
"v26", "v27");
|
||||
}
|
||||
|
||||
// ARGB expects first 3 values to contain RGB and 4th value is ignored.
|
||||
|
||||
@ -2763,7 +2763,7 @@ void ScaleARGBRowDown2Linear_SSE2(const uint8_t* src_argb,
|
||||
"+r"(dst_argb), // %1
|
||||
"+r"(dst_width) // %2
|
||||
:
|
||||
: "memory", "cc", "xmm0", "xmm1");
|
||||
: "memory", "cc", "xmm0", "xmm1", "xmm2");
|
||||
}
|
||||
|
||||
void ScaleARGBRowDown2Box_SSE2(const uint8_t* src_argb,
|
||||
|
||||
@ -40,7 +40,7 @@ void ScaleRowDown2_NEON(const uint8_t* src_ptr,
|
||||
"+r"(dst), // %1
|
||||
"+r"(dst_width) // %2
|
||||
:
|
||||
: "q0", "q1" // Clobber List
|
||||
: "memory", "cc", "q0", "q1" // Clobber List
|
||||
);
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@ void ScaleRowDown2Linear_NEON(const uint8_t* src_ptr,
|
||||
"+r"(dst), // %1
|
||||
"+r"(dst_width) // %2
|
||||
:
|
||||
: "q0", "q1" // Clobber List
|
||||
: "memory", "cc", "q0", "q1" // Clobber List
|
||||
);
|
||||
}
|
||||
|
||||
@ -92,7 +92,7 @@ void ScaleRowDown2Box_NEON(const uint8_t* src_ptr,
|
||||
"+r"(dst), // %2
|
||||
"+r"(dst_width) // %3
|
||||
:
|
||||
: "q0", "q1", "q2", "q3" // Clobber List
|
||||
: "memory", "cc", "q0", "q1", "q2", "q3" // Clobber List
|
||||
);
|
||||
}
|
||||
|
||||
@ -296,7 +296,7 @@ void ScaleRowDown38_NEON(const uint8_t* src_ptr,
|
||||
"+r"(dst_ptr), // %1
|
||||
"+r"(dst_width) // %2
|
||||
: "r"(&kShuf38) // %3
|
||||
: "d0", "d1", "d2", "d3", "d4", "d5", "memory", "cc");
|
||||
: "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "memory", "cc");
|
||||
}
|
||||
|
||||
// 32x3 -> 12x1
|
||||
@ -725,7 +725,7 @@ void ScaleRowUp2_Linear_16_NEON(const uint16_t* src_ptr,
|
||||
"+r"(dst_width), // %2
|
||||
"+r"(src_temp) // %3
|
||||
:
|
||||
: "memory", "cc", "q0", "q1", "q2", "q15" // Clobber List
|
||||
: "memory", "cc", "q0", "q1", "q2", "q3", "q4", "q5", "q15" // Clobber List
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -431,8 +431,8 @@ void ScaleRowDown38_3_Box_NEON(const uint8_t* src_ptr,
|
||||
[tblArray2] "r"(kScaleRowDown38_3_BoxIndices2), // %[tblArray2]
|
||||
[tblArray3] "r"(kScaleRowDown38_3_BoxIndices3), // %[tblArray3]
|
||||
[tblArray4] "r"(kScaleRowDown38_NarrowIndices) // %[tblArray4]
|
||||
: "memory", "cc", "v0", "v1", "v2", "v3", "v4", "v20", "v21", "22", "23",
|
||||
"24", "v27", "v28", "v29", "v30", "v31");
|
||||
: "memory", "cc", "v0", "v1", "v2", "v3", "v4", "v20", "v21", "v22",
|
||||
"v23", "v24", "v25", "v27", "v28", "v29", "v30", "v31");
|
||||
}
|
||||
|
||||
static const uvec8 kScaleRowDown38_2_BoxIndices1[] = {
|
||||
@ -721,7 +721,7 @@ void ScaleRowUp2_Linear_16_NEON(const uint16_t* src_ptr,
|
||||
"+r"(dst_ptr), // %2
|
||||
"+r"(dst_width) // %3
|
||||
:
|
||||
: "memory", "cc", "v0", "v1", "v2", "v31" // Clobber List
|
||||
: "memory", "cc", "v0", "v1", "v2", "v3", "v4", "v5", "v31" // Clobber List
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -356,7 +356,7 @@ __arm_locally_streaming void ScaleUVRowDown2Linear_SME(const uint8_t* src_uv,
|
||||
[dst_width] "+r"(dst_width), // %[dst_width]
|
||||
[vl] "=r"(vl) // %[vl]
|
||||
:
|
||||
: "z0", "z1", "p0", "p1");
|
||||
: "memory", "cc", "z0", "z1", "p0", "p1");
|
||||
}
|
||||
|
||||
#define SCALEUVROWDOWN2BOX_SVE \
|
||||
@ -408,7 +408,8 @@ __arm_locally_streaming void ScaleUVRowDown2Box_SME(const uint8_t* src_uv,
|
||||
[dst_width] "+r"(dst_width), // %[dst_width]
|
||||
[vl] "=r"(vl) // %[vl]
|
||||
:
|
||||
: "z0", "z1", "z2", "z3", "z4", "z5", "z6", "z7", "p0", "p1");
|
||||
: "memory", "cc", "z0", "z1", "z2", "z3", "z4", "z5", "z6", "z7", "p0",
|
||||
"p1");
|
||||
}
|
||||
|
||||
#undef SCALEUVROWDOWN2BOX_SVE
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user