summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/avc/enc/src/sad_inline.h
diff options
context:
space:
mode:
Diffstat (limited to 'media/libstagefright/codecs/avc/enc/src/sad_inline.h')
-rw-r--r--media/libstagefright/codecs/avc/enc/src/sad_inline.h50
1 files changed, 43 insertions, 7 deletions
diff --git a/media/libstagefright/codecs/avc/enc/src/sad_inline.h b/media/libstagefright/codecs/avc/enc/src/sad_inline.h
index f6c3554..6695d63 100644
--- a/media/libstagefright/codecs/avc/enc/src/sad_inline.h
+++ b/media/libstagefright/codecs/avc/enc/src/sad_inline.h
@@ -343,7 +343,13 @@ SadMBOffset1:
__inline int32 SUB_SAD(int32 sad, int32 tmp, int32 tmp2)
{
-__asm__ volatile("rsbs %1, %1, %2\n\trsbmi %1, %1, #0\n\tadd %0, %0, %1": "=r"(sad): "r"(tmp), "r"(tmp2));
+ __asm__ volatile(
+ "rsbs %1, %1, %2\n\t"
+ "rsbmi %1, %1, #0\n\t"
+ "add %0, %0, %1"
+ : "=r"(sad)
+ : "r"(tmp), "r"(tmp2)
+ );
return sad;
}
@@ -351,7 +357,18 @@ __asm__ volatile("rsbs %1, %1, %2\n\trsbmi %1, %1, #0\n\tadd %0, %0, %1": "=r"(s
{
int32 x7;
-__asm__ volatile("EOR %1, %2, %0\n\tSUBS %0, %2, %0\n\tEOR %1, %1, %0\n\tAND %1, %3, %1, lsr #1\n\tORRCC %1, %1, #0x80000000\n\tRSB %1, %1, %1, lsl #8\n\tADD %0, %0, %1, asr #7\n\tEOR %0, %0, %1, asr #7": "=r"(src1), "=&r"(x7): "r"(src2), "r"(mask));
+ __asm__ volatile(
+ "EOR %1, %2, %0\n\t"
+ "SUBS %0, %2, %0\n\t"
+ "EOR %1, %1, %0\n\t"
+ "AND %1, %3, %1, lsr #1\n\t"
+ "ORRCC %1, %1, #0x80000000\n\t"
+ "RSB %1, %1, %1, lsl #8\n\t"
+ "ADD %0, %0, %1, asr #7\n\t"
+ "EOR %0, %0, %1, asr #7"
+ : "=r"(src1), "=&r"(x7)
+ : "r"(src2), "r"(mask)
+ );
return src1;
}
@@ -360,12 +377,31 @@ __asm__ volatile("EOR %1, %2, %0\n\tSUBS %0, %2, %0\n\tEOR %1, %1, %0\n\tAND %
{
int32 x7;
-__asm__ volatile("EOR %1, %2, %0\n\tADDS %0, %2, %0\n\tEOR %1, %1, %0\n\tANDS %1, %3, %1, rrx\n\tRSB %1, %1, %1, lsl #8\n\tSUB %0, %0, %1, asr #7\n\tEOR %0, %0, %1, asr #7": "=r"(src1), "=&r"(x7): "r"(src2), "r"(mask));
+ __asm__ volatile(
+ "EOR %1, %2, %0\n\t"
+ "ADDS %0, %2, %0\n\t"
+ "EOR %1, %1, %0\n\t"
+ "ANDS %1, %3, %1, rrx\n\t"
+ "RSB %1, %1, %1, lsl #8\n\t"
+ "SUB %0, %0, %1, asr #7\n\t"
+ "EOR %0, %0, %1, asr #7"
+ : "=r"(src1), "=&r"(x7)
+ : "r"(src2), "r"(mask)
+ );
return src1;
}
-#define sum_accumulate __asm__ volatile("SBC %0, %0, %1\n\tBIC %1, %4, %1\n\tADD %2, %2, %1, lsr #8\n\tSBC %0, %0, %3\n\tBIC %3, %4, %3\n\tADD %2, %2, %3, lsr #8": "=&r" (x5), "=&r" (x10), "=&r" (x4), "=&r" (x11): "r" (x6));
+#define sum_accumulate __asm__ volatile( \
+ "SBC %0, %0, %1\n\t" \
+ "BIC %1, %4, %1\n\t" \
+ "ADD %2, %2, %1, lsr #8\n\t" \
+ "SBC %0, %0, %3\n\t" \
+ "BIC %3, %4, %3\n\t" \
+ "ADD %2, %2, %3, lsr #8" \
+ : "=&r" (x5), "=&r" (x10), "=&r" (x4), "=&r" (x11) \
+ : "r" (x6) \
+ );
#define NUMBER 3
#define SHIFT 24
@@ -407,7 +443,7 @@ __asm__ volatile("EOR %1, %2, %0\n\tADDS %0, %2, %0\n\tEOR %1, %1, %0\n\tANDS
x8 = 16;
///
-__asm__ volatile("MVN %0, #0xFF00": "=r"(x6));
+ __asm__ volatile("MVN %0, #0xFF00": "=r"(x6));
LOOP_SAD0:
/****** process 8 pixels ******/
@@ -431,10 +467,10 @@ LOOP_SAD0:
/****** process 8 pixels ******/
x11 = *((int32*)(ref + 4));
-__asm__ volatile("LDR %0, [%1], %2": "=&r"(x10), "=r"(ref): "r"(lx));
+ __asm__ volatile("LDR %0, [%1], %2": "=&r"(x10), "=r"(ref): "r"(lx));
//x10 = *((int32*)ref); ref+=lx;
x14 = *((int32*)(blk + 4));
-__asm__ volatile("LDR %0, [%1], #16": "=&r"(x12), "=r"(blk));
+ __asm__ volatile("LDR %0, [%1], #16": "=&r"(x12), "=r"(blk));
/* process x11 & x14 */
x11 = sad_4pixel(x11, x14, x9);