Alien-FreeImage
view release on metacpan or search on metacpan
patches/FreeImage-3.17.0-ALL-IN-ONE.patch view on Meta::CPAN
+ "precrq.ph.w %[" #TEMP0 "], %[temp8], %[temp9] \n\t" \
"append %[temp8], %[temp9], 16 \n\t" \
- "subq.ph %["#TEMP1"], %["#TEMP0"], %[temp8] \n\t" \
- "addq.ph %["#TEMP0"], %["#TEMP0"], %[temp8] \n\t" \
- "rotr %["#TEMP1"], %["#TEMP1"], 16 \n\t"
+ "subq.ph %[" #TEMP1 "], %[" #TEMP0 "], %[temp8] \n\t" \
+ "addq.ph %[" #TEMP0 "], %[" #TEMP0 "], %[temp8] \n\t" \
+ "rotr %[" #TEMP1 "], %[" #TEMP1 "], 16 \n\t"
// macro for one vertical pass in FTransformWHT
// temp0..temp7 holds tmp[0]..tmp[15]
// A, B, C, D - offsets in bytes to store to out buffer
// TEMP0, TEMP2, TEMP4 and TEMP6 - registers for corresponding tmp elements
#define VERTICAL_PASS_WHT(A, B, C, D, TEMP0, TEMP2, TEMP4, TEMP6) \
- "addq.ph %[temp8], %["#TEMP0"], %["#TEMP4"] \n\t" \
- "addq.ph %[temp9], %["#TEMP2"], %["#TEMP6"] \n\t" \
- "subq.ph %["#TEMP2"], %["#TEMP2"], %["#TEMP6"] \n\t" \
- "subq.ph %["#TEMP6"], %["#TEMP0"], %["#TEMP4"] \n\t" \
- "addqh.ph %["#TEMP0"], %[temp8], %[temp9] \n\t" \
- "subqh.ph %["#TEMP4"], %["#TEMP6"], %["#TEMP2"] \n\t" \
- "addqh.ph %["#TEMP2"], %["#TEMP2"], %["#TEMP6"] \n\t" \
- "subqh.ph %["#TEMP6"], %[temp8], %[temp9] \n\t" \
- "usw %["#TEMP0"], "#A"(%[out]) \n\t" \
- "usw %["#TEMP2"], "#B"(%[out]) \n\t" \
- "usw %["#TEMP4"], "#C"(%[out]) \n\t" \
- "usw %["#TEMP6"], "#D"(%[out]) \n\t"
+ "addq.ph %[temp8], %[" #TEMP0 "], %[" #TEMP4 "] \n\t" \
+ "addq.ph %[temp9], %[" #TEMP2 "], %[" #TEMP6 "] \n\t" \
+ "subq.ph %[" #TEMP2 "], %[" #TEMP2 "], %[" #TEMP6 "] \n\t" \
+ "subq.ph %[" #TEMP6 "], %[" #TEMP0 "], %[" #TEMP4 "] \n\t" \
+ "addqh.ph %[" #TEMP0 "], %[temp8], %[temp9] \n\t" \
+ "subqh.ph %[" #TEMP4 "], %[" #TEMP6 "], %[" #TEMP2 "] \n\t" \
+ "addqh.ph %[" #TEMP2 "], %[" #TEMP2 "], %[" #TEMP6 "] \n\t" \
+ "subqh.ph %[" #TEMP6 "], %[temp8], %[temp9] \n\t" \
+ "usw %[" #TEMP0 "], " #A "(%[out]) \n\t" \
+ "usw %[" #TEMP2 "], " #B "(%[out]) \n\t" \
+ "usw %[" #TEMP4 "], " #C "(%[out]) \n\t" \
+ "usw %[" #TEMP6 "], " #D "(%[out]) \n\t"
static void FTransformWHT(const int16_t* in, int16_t* out) {
int temp0, temp1, temp2, temp3, temp4;
@@ -1385,10 +1385,10 @@
// convert 8 coeffs at time
// A, B, C, D - offsets in bytes to load from out buffer
#define CONVERT_COEFFS_TO_BIN(A, B, C, D) \
- "ulw %[temp0], "#A"(%[out]) \n\t" \
- "ulw %[temp1], "#B"(%[out]) \n\t" \
- "ulw %[temp2], "#C"(%[out]) \n\t" \
- "ulw %[temp3], "#D"(%[out]) \n\t" \
+ "ulw %[temp0], " #A "(%[out]) \n\t" \
+ "ulw %[temp1], " #B "(%[out]) \n\t" \
+ "ulw %[temp2], " #C "(%[out]) \n\t" \
+ "ulw %[temp3], " #D "(%[out]) \n\t" \
"absq_s.ph %[temp0], %[temp0] \n\t" \
"absq_s.ph %[temp1], %[temp1] \n\t" \
"absq_s.ph %[temp2], %[temp2] \n\t" \
diff -ru src.3170/Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c src/Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c
--- src.3170/Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c 2015-02-20 02:34:34.000000000 +0100
+++ src/Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c 2017-06-22 22:17:19.462540500 +0200
@@ -48,7 +48,7 @@
"srl %[temp0], %[length], 0x2 \n\t" \
"beqz %[temp0], 4f \n\t" \
" andi %[temp6], %[length], 0x3 \n\t" \
- ".if "#INVERSE" \n\t" \
+ ".if " #INVERSE " \n\t" \
"lbu %[temp1], -1(%[src]) \n\t" \
"1: \n\t" \
"lbu %[temp2], 0(%[src]) \n\t" \
@@ -84,7 +84,7 @@
"lbu %[temp1], -1(%[src]) \n\t" \
"lbu %[temp2], 0(%[src]) \n\t" \
"addiu %[src], %[src], 1 \n\t" \
- ".if "#INVERSE" \n\t" \
+ ".if " #INVERSE " \n\t" \
"addu %[temp3], %[temp1], %[temp2] \n\t" \
"sb %[temp3], -1(%[src]) \n\t" \
".else \n\t" \
@@ -131,7 +131,7 @@
"ulw %[temp3], 4(%[src]) \n\t" \
"ulw %[temp4], 4(%[pred]) \n\t" \
"addiu %[src], %[src], 8 \n\t" \
- ".if "#INVERSE" \n\t" \
+ ".if " #INVERSE " \n\t" \
"addu.qb %[temp5], %[temp1], %[temp2] \n\t" \
"addu.qb %[temp6], %[temp3], %[temp4] \n\t" \
".else \n\t" \
@@ -152,7 +152,7 @@
"lbu %[temp2], 0(%[pred]) \n\t" \
"addiu %[src], %[src], 1 \n\t" \
"addiu %[pred], %[pred], 1 \n\t" \
- ".if "#INVERSE" \n\t" \
+ ".if " #INVERSE " \n\t" \
"addu %[temp3], %[temp1], %[temp2] \n\t" \
".else \n\t" \
"subu %[temp3], %[temp1], %[temp2] \n\t" \
@@ -177,7 +177,7 @@
__asm__ volatile ( \
"lbu %[temp1], 0(%[src]) \n\t" \
"lbu %[temp2], 0(%[pred]) \n\t" \
- ".if "#INVERSE" \n\t" \
+ ".if " #INVERSE " \n\t" \
"addu %[temp3], %[temp1], %[temp2] \n\t" \
".else \n\t" \
"subu %[temp3], %[temp1], %[temp2] \n\t" \
diff -ru src.3170/Source/LibWebP/src/dsp/dsp.lossless_mips32.c src/Source/LibWebP/src/dsp/dsp.lossless_mips32.c
--- src.3170/Source/LibWebP/src/dsp/dsp.lossless_mips32.c 2015-02-20 02:34:36.000000000 +0100
+++ src/Source/LibWebP/src/dsp/dsp.lossless_mips32.c 2017-06-22 22:18:06.110473600 +0200
@@ -285,28 +285,28 @@
// literal_ and successive histograms could be unaligned
// so we must use ulw and usw
#define ADD_TO_OUT(A, B, C, D, E, P0, P1, P2) \
- "ulw %[temp0], "#A"(%["#P0"]) \n\t" \
- "ulw %[temp1], "#B"(%["#P0"]) \n\t" \
- "ulw %[temp2], "#C"(%["#P0"]) \n\t" \
- "ulw %[temp3], "#D"(%["#P0"]) \n\t" \
- "ulw %[temp4], "#A"(%["#P1"]) \n\t" \
- "ulw %[temp5], "#B"(%["#P1"]) \n\t" \
- "ulw %[temp6], "#C"(%["#P1"]) \n\t" \
- "ulw %[temp7], "#D"(%["#P1"]) \n\t" \
+ "ulw %[temp0], " #A "(%[" #P0 "]) \n\t" \
+ "ulw %[temp1], " #B "(%[" #P0 "]) \n\t" \
+ "ulw %[temp2], " #C "(%[" #P0 "]) \n\t" \
+ "ulw %[temp3], " #D "(%[" #P0 "]) \n\t" \
( run in 1.800 second using v1.01-cache-2.11-cpan-140bd7fdf52 )