"MOV %[result], %[L_var1], ASL %[var2] \n"
"TEQ r2, %[result], ASR %[var2]\n"
"EORNE %[result],r3,r2,ASR#31\n"
- :[result]"+r"(result)
+ :[result]"=&r"(result)
:[L_var1]"r"(L_var1), [var2]"r"(var2)
:"r2", "r3"
);
"RSB r3,r3,r3,LSL #15 \n"
"TEQ r2, %[result], ASR #31 \n"
"EORNE %[result], r3, %[result],ASR #31"
- :[result]"+r"(result)
+ :[result]"=r"(result)
:[L_var1]"r"(L_var1), [var2]"r"(var2)
:"r2", "r3"
);
#if ARMV5TE_SAT
Word16 result;
asm volatile (
- "MOV %[result], %[L_var1]\n"
"MOV r3, #1\n"
"MOV r2,%[L_var1],ASR#15\n"
"RSB r3, r3, r3, LSL #15\n"
"TEQ r2,%[L_var1],ASR#31\n"
"EORNE %[result],r3,%[L_var1],ASR#31\n"
- :[result]"+r"(result)
+ "MOVEQ %[result], %[L_var1]\n"
+ :[result]"=r"(result)
:[L_var1]"r"(L_var1)
:"r2", "r3"
);
asm volatile(
"SMULBB %[result], %[var1], %[var2] \n"
"QADD %[result], %[result], %[result] \n"
- :[result]"+r"(result)
+ :[result]"=r"(result)
:[var1]"r"(var1), [var2]"r"(var2)
);
return result;
"SMULBB %[result], %[var1], %[var2] \n"
"QADD %[result], %[result], %[result] \n"
"QSUB %[result], %[L_var3], %[result]\n"
- :[result]"+r"(result)
+ :[result]"=&r"(result)
:[L_var3]"r"(L_var3), [var1]"r"(var1), [var2]"r"(var2)
);
return result;
Word32 result;
asm volatile(
"QSUB %[result], %[L_var1], %[L_var2]\n"
- :[result]"+r"(result)
+ :[result]"=r"(result)
:[L_var1]"r"(L_var1), [L_var2]"r"(L_var2)
);
return result;
"RSB r3, r3, r3, LSL, #15\n"
"TEQ r2, %[result], ASR #31\n"
"EORNE %[result], r3, %[result], ASR #31"
- :[result]"+r"(result)
+ :[result]"=r"(result)
:[var1]"r"(var1), [var2]"r"(var2)
:"r2", "r3"
);
"MOV r2, %[var1], ASR #15 \n"
"TEQ r2, %[var1], ASR #31 \n"
"EORNE %[result], r3, %[result], ASR #31 \n"
- :[result]"+r"(result)
+ :[result]"=&r"(result)
:[var1]"r"(var1), [var2]"r"(var2)
:"r2", "r3"
);
"MOV r2, %[result], ASR #15\n"
"TEQ r2, %[result], ASR #31\n"
"EORNE %[result], r3, %[result], ASR #31 \n"
- :[result]"+r"(result)
+ :[result]"=r"(result)
:[var1]"r"(var1), [var2]"r"(var2)
:"r2", "r3"
);
"MOVEQ %[result], #0\n"
"CMP r2, #-1\n"
"MOVEQ %[result], #15\n"
- :[result]"+r"(result)
+ :[result]"=r"(result)
:[var1]"r"(var1)
:"r2"
);
"CLZNE %[result], %[L_var1]\n"
"SUBNE %[result], %[result], #1\n"
"MOVEQ %[result], #0\n"
- :[result]"+r"(result)
+ :[result]"=r"(result)
:[L_var1]"r"(L_var1)
);
return result;
"MOV r1,#0x00008000\n"
"QADD %[result], %[L_var1], r1\n"
"MOV %[result], %[result], ASR #16 \n"
- :[result]"+r"(result)
+ :[result]"=r"(result)
:[L_var1]"r"(L_var1)
:"r1"
);
"SMULBB %[result], %[var1], %[var2]\n"
"QADD %[result], %[result], %[result]\n"
"QADD %[result], %[result], %[L_var3]\n"
- :[result]"+r"(result)
+ :[result]"=&r"(result)
: [L_var3]"r"(L_var3), [var1]"r"(var1), [var2]"r"(var2)
);
return result;
Word32 result;
asm volatile(
"QADD %[result], %[L_var1], %[L_var2]\n"
- :[result]"+r"(result)
+ :[result]"=r"(result)
:[L_var1]"r"(L_var1), [L_var2]"r"(L_var2)
);
return result;