Alien-FreeImage
view release on metacpan or search on metacpan
patches/FreeImage-3.17.0-ALL-IN-ONE.patch view on Meta::CPAN
- "subq.ph %["#O1"], %["#I0"], %["#I1"] \n\t" \
- "addq.ph %["#O2"], %["#I2"], %["#I3"] \n\t" \
- "subq.ph %["#O3"], %["#I2"], %["#I3"] \n\t" \
- "addq.ph %["#O4"], %["#I4"], %["#I5"] \n\t" \
- "subq.ph %["#O5"], %["#I4"], %["#I5"] \n\t" \
- "addq.ph %["#O6"], %["#I6"], %["#I7"] \n\t" \
- "subq.ph %["#O7"], %["#I6"], %["#I7"] \n\t"
+ "addq.ph %[" #O0 "], %[" #I0 "], %[" #I1 "] \n\t" \
+ "subq.ph %[" #O1 "], %[" #I0 "], %[" #I1 "] \n\t" \
+ "addq.ph %[" #O2 "], %[" #I2 "], %[" #I3 "] \n\t" \
+ "subq.ph %[" #O3 "], %[" #I2 "], %[" #I3 "] \n\t" \
+ "addq.ph %[" #O4 "], %[" #I4 "], %[" #I5 "] \n\t" \
+ "subq.ph %[" #O5 "], %[" #I4 "], %[" #I5 "] \n\t" \
+ "addq.ph %[" #O6 "], %[" #I6 "], %[" #I7 "] \n\t" \
+ "subq.ph %[" #O7 "], %[" #I6 "], %[" #I7 "] \n\t"
// IO - input/output
#define ABS_X8(IO0, IO1, IO2, IO3, IO4, IO5, IO6, IO7) \
- "absq_s.ph %["#IO0"], %["#IO0"] \n\t" \
- "absq_s.ph %["#IO1"], %["#IO1"] \n\t" \
- "absq_s.ph %["#IO2"], %["#IO2"] \n\t" \
- "absq_s.ph %["#IO3"], %["#IO3"] \n\t" \
- "absq_s.ph %["#IO4"], %["#IO4"] \n\t" \
- "absq_s.ph %["#IO5"], %["#IO5"] \n\t" \
- "absq_s.ph %["#IO6"], %["#IO6"] \n\t" \
- "absq_s.ph %["#IO7"], %["#IO7"] \n\t"
+ "absq_s.ph %[" #IO0 "], %[" #IO0 "] \n\t" \
+ "absq_s.ph %[" #IO1 "], %[" #IO1 "] \n\t" \
+ "absq_s.ph %[" #IO2 "], %[" #IO2 "] \n\t" \
+ "absq_s.ph %[" #IO3 "], %[" #IO3 "] \n\t" \
+ "absq_s.ph %[" #IO4 "], %[" #IO4 "] \n\t" \
+ "absq_s.ph %[" #IO5 "], %[" #IO5 "] \n\t" \
+ "absq_s.ph %[" #IO6 "], %[" #IO6 "] \n\t" \
+ "absq_s.ph %[" #IO7 "], %[" #IO7 "] \n\t"
// dpa.w.ph $ac0 temp0 ,temp1
// $ac += temp0[31..16] * temp1[31..16] + temp0[15..0] * temp1[15..0]
@@ -56,15 +56,15 @@
#define MUL_HALF(O0, I0, I1, I2, I3, I4, I5, I6, I7, \
I8, I9, I10, I11, I12, I13, I14, I15) \
"mult $ac0, $zero, $zero \n\t" \
- "dpa.w.ph $ac0, %["#I2"], %["#I0"] \n\t" \
- "dpax.w.ph $ac0, %["#I5"], %["#I6"] \n\t" \
- "dpa.w.ph $ac0, %["#I8"], %["#I9"] \n\t" \
- "dpax.w.ph $ac0, %["#I11"], %["#I4"] \n\t" \
- "dpa.w.ph $ac0, %["#I12"], %["#I7"] \n\t" \
- "dpax.w.ph $ac0, %["#I13"], %["#I1"] \n\t" \
- "dpa.w.ph $ac0, %["#I14"], %["#I3"] \n\t" \
- "dpax.w.ph $ac0, %["#I15"], %["#I10"] \n\t" \
- "mflo %["#O0"], $ac0 \n\t"
+ "dpa.w.ph $ac0, %[" #I2 "], %[" #I0 "] \n\t" \
+ "dpax.w.ph $ac0, %[" #I5 "], %[" #I6 "] \n\t" \
+ "dpa.w.ph $ac0, %[" #I8 "], %[" #I9 "] \n\t" \
+ "dpax.w.ph $ac0, %[" #I11 "], %[" #I4 "] \n\t" \
+ "dpa.w.ph $ac0, %[" #I12 "], %[" #I7 "] \n\t" \
+ "dpax.w.ph $ac0, %[" #I13 "], %[" #I1 "] \n\t" \
+ "dpa.w.ph $ac0, %[" #I14 "], %[" #I3 "] \n\t" \
+ "dpax.w.ph $ac0, %[" #I15 "], %[" #I10 "] \n\t" \
+ "mflo %[" #O0 "], $ac0 \n\t"
#define OUTPUT_EARLY_CLOBBER_REGS_17() \
OUTPUT_EARLY_CLOBBER_REGS_10(), \
@@ -77,69 +77,69 @@
// A - offset in bytes to load from src and ref buffers
// TEMP0..TEMP3 - registers for corresponding tmp elements
#define HORIZONTAL_PASS(A, TEMP0, TEMP1, TEMP2, TEMP3) \
- "lw %["#TEMP0"], 0(%[args]) \n\t" \
- "lw %["#TEMP1"], 4(%[args]) \n\t" \
- "lw %["#TEMP2"], "XSTR(BPS)"*"#A"(%["#TEMP0"]) \n\t" \
- "lw %["#TEMP3"], "XSTR(BPS)"*"#A"(%["#TEMP1"]) \n\t" \
- "preceu.ph.qbl %["#TEMP0"], %["#TEMP2"] \n\t" \
- "preceu.ph.qbl %["#TEMP1"], %["#TEMP3"] \n\t" \
- "preceu.ph.qbr %["#TEMP2"], %["#TEMP2"] \n\t" \
- "preceu.ph.qbr %["#TEMP3"], %["#TEMP3"] \n\t" \
- "subq.ph %["#TEMP0"], %["#TEMP0"], %["#TEMP1"] \n\t" \
- "subq.ph %["#TEMP2"], %["#TEMP2"], %["#TEMP3"] \n\t" \
- "rotr %["#TEMP0"], %["#TEMP0"], 16 \n\t" \
- "addq.ph %["#TEMP1"], %["#TEMP2"], %["#TEMP0"] \n\t" \
- "subq.ph %["#TEMP3"], %["#TEMP2"], %["#TEMP0"] \n\t" \
- "seh %["#TEMP0"], %["#TEMP1"] \n\t" \
- "sra %[temp16], %["#TEMP1"], 16 \n\t" \
- "seh %[temp19], %["#TEMP3"] \n\t" \
- "sra %["#TEMP3"], %["#TEMP3"], 16 \n\t" \
- "subu %["#TEMP2"], %["#TEMP0"], %[temp16] \n\t" \
- "addu %["#TEMP0"], %["#TEMP0"], %[temp16] \n\t" \
- "mul %[temp17], %[temp19], %[c2217] \n\t" \
- "mul %[temp18], %["#TEMP3"], %[c5352] \n\t" \
- "mul %["#TEMP1"], %[temp19], %[c5352] \n\t" \
- "mul %[temp16], %["#TEMP3"], %[c2217] \n\t" \
- "sll %["#TEMP2"], %["#TEMP2"], 3 \n\t" \
- "sll %["#TEMP0"], %["#TEMP0"], 3 \n\t" \
- "subu %["#TEMP3"], %[temp17], %[temp18] \n\t" \
- "addu %["#TEMP1"], %[temp16], %["#TEMP1"] \n\t" \
- "addiu %["#TEMP3"], %["#TEMP3"], 937 \n\t" \
- "addiu %["#TEMP1"], %["#TEMP1"], 1812 \n\t" \
- "sra %["#TEMP3"], %["#TEMP3"], 9 \n\t" \
- "sra %["#TEMP1"], %["#TEMP1"], 9 \n\t"
+ "lw %[" #TEMP0 "], 0(%[args]) \n\t" \
+ "lw %[" #TEMP1 "], 4(%[args]) \n\t" \
+ "lw %[" #TEMP2 "], "XSTR(BPS)"*" #A "(%[" #TEMP0 "]) \n\t" \
+ "lw %[" #TEMP3 "], "XSTR(BPS)"*" #A "(%[" #TEMP1 "]) \n\t" \
+ "preceu.ph.qbl %[" #TEMP0 "], %[" #TEMP2 "] \n\t" \
+ "preceu.ph.qbl %[" #TEMP1 "], %[" #TEMP3 "] \n\t" \
+ "preceu.ph.qbr %[" #TEMP2 "], %[" #TEMP2 "] \n\t" \
+ "preceu.ph.qbr %[" #TEMP3 "], %[" #TEMP3 "] \n\t" \
+ "subq.ph %[" #TEMP0 "], %[" #TEMP0 "], %[" #TEMP1 "] \n\t" \
+ "subq.ph %[" #TEMP2 "], %[" #TEMP2 "], %[" #TEMP3 "] \n\t" \
+ "rotr %[" #TEMP0 "], %[" #TEMP0 "], 16 \n\t" \
+ "addq.ph %[" #TEMP1 "], %[" #TEMP2 "], %[" #TEMP0 "] \n\t" \
+ "subq.ph %[" #TEMP3 "], %[" #TEMP2 "], %[" #TEMP0 "] \n\t" \
+ "seh %[" #TEMP0 "], %[" #TEMP1 "] \n\t" \
+ "sra %[temp16], %[" #TEMP1 "], 16 \n\t" \
+ "seh %[temp19], %[" #TEMP3 "] \n\t" \
+ "sra %[" #TEMP3 "], %[" #TEMP3 "], 16 \n\t" \
+ "subu %[" #TEMP2 "], %[" #TEMP0 "], %[temp16] \n\t" \
+ "addu %[" #TEMP0 "], %[" #TEMP0 "], %[temp16] \n\t" \
+ "mul %[temp17], %[temp19], %[c2217] \n\t" \
+ "mul %[temp18], %[" #TEMP3 "], %[c5352] \n\t" \
+ "mul %[" #TEMP1 "], %[temp19], %[c5352] \n\t" \
+ "mul %[temp16], %[" #TEMP3 "], %[c2217] \n\t" \
+ "sll %[" #TEMP2 "], %[" #TEMP2 "], 3 \n\t" \
+ "sll %[" #TEMP0 "], %[" #TEMP0 "], 3 \n\t" \
patches/FreeImage-3.17.0-ALL-IN-ONE.patch view on Meta::CPAN
+ "preceu.ph.qbr %[" #O4 "], %[" #I2 "] \n\t" \
+ "preceu.ph.qbl %[" #O5 "], %[" #I2 "] \n\t" \
+ "preceu.ph.qbr %[" #O6 "], %[" #I3 "] \n\t" \
+ "preceu.ph.qbl %[" #O7 "], %[" #I3 "] \n\t"
// temp0[31..16 | 15..0] = temp0[31..16 | 15..0] + temp8[31..16 | 15..0]
// temp0[31..16 | 15..0] = temp0[31..16 <<(s) 7 | 15..0 <<(s) 7]
@@ -160,30 +160,30 @@
#define STORE_SAT_SUM_X2(IO0, IO1, IO2, IO3, IO4, IO5, IO6, IO7, \
I0, I1, I2, I3, I4, I5, I6, I7, \
I8, I9, I10, I11, I12, I13) \
- "addq.ph %["#IO0"], %["#IO0"], %["#I0"] \n\t" \
- "addq.ph %["#IO1"], %["#IO1"], %["#I1"] \n\t" \
- "addq.ph %["#IO2"], %["#IO2"], %["#I2"] \n\t" \
- "addq.ph %["#IO3"], %["#IO3"], %["#I3"] \n\t" \
- "addq.ph %["#IO4"], %["#IO4"], %["#I4"] \n\t" \
- "addq.ph %["#IO5"], %["#IO5"], %["#I5"] \n\t" \
- "addq.ph %["#IO6"], %["#IO6"], %["#I6"] \n\t" \
- "addq.ph %["#IO7"], %["#IO7"], %["#I7"] \n\t" \
- "shll_s.ph %["#IO0"], %["#IO0"], 7 \n\t" \
- "shll_s.ph %["#IO1"], %["#IO1"], 7 \n\t" \
- "shll_s.ph %["#IO2"], %["#IO2"], 7 \n\t" \
- "shll_s.ph %["#IO3"], %["#IO3"], 7 \n\t" \
- "shll_s.ph %["#IO4"], %["#IO4"], 7 \n\t" \
- "shll_s.ph %["#IO5"], %["#IO5"], 7 \n\t" \
- "shll_s.ph %["#IO6"], %["#IO6"], 7 \n\t" \
- "shll_s.ph %["#IO7"], %["#IO7"], 7 \n\t" \
- "precrqu_s.qb.ph %["#IO0"], %["#IO1"], %["#IO0"] \n\t" \
- "precrqu_s.qb.ph %["#IO2"], %["#IO3"], %["#IO2"] \n\t" \
- "precrqu_s.qb.ph %["#IO4"], %["#IO5"], %["#IO4"] \n\t" \
- "precrqu_s.qb.ph %["#IO6"], %["#IO7"], %["#IO6"] \n\t" \
- "usw %["#IO0"], "XSTR(I13)"*"#I9"(%["#I8"]) \n\t" \
- "usw %["#IO2"], "XSTR(I13)"*"#I10"(%["#I8"]) \n\t" \
- "usw %["#IO4"], "XSTR(I13)"*"#I11"(%["#I8"]) \n\t" \
- "usw %["#IO6"], "XSTR(I13)"*"#I12"(%["#I8"]) \n\t"
+ "addq.ph %[" #IO0 "], %[" #IO0 "], %[" #I0 "] \n\t" \
+ "addq.ph %[" #IO1 "], %[" #IO1 "], %[" #I1 "] \n\t" \
+ "addq.ph %[" #IO2 "], %[" #IO2 "], %[" #I2 "] \n\t" \
+ "addq.ph %[" #IO3 "], %[" #IO3 "], %[" #I3 "] \n\t" \
+ "addq.ph %[" #IO4 "], %[" #IO4 "], %[" #I4 "] \n\t" \
+ "addq.ph %[" #IO5 "], %[" #IO5 "], %[" #I5 "] \n\t" \
+ "addq.ph %[" #IO6 "], %[" #IO6 "], %[" #I6 "] \n\t" \
+ "addq.ph %[" #IO7 "], %[" #IO7 "], %[" #I7 "] \n\t" \
+ "shll_s.ph %[" #IO0 "], %[" #IO0 "], 7 \n\t" \
+ "shll_s.ph %[" #IO1 "], %[" #IO1 "], 7 \n\t" \
+ "shll_s.ph %[" #IO2 "], %[" #IO2 "], 7 \n\t" \
+ "shll_s.ph %[" #IO3 "], %[" #IO3 "], 7 \n\t" \
+ "shll_s.ph %[" #IO4 "], %[" #IO4 "], 7 \n\t" \
+ "shll_s.ph %[" #IO5 "], %[" #IO5 "], 7 \n\t" \
+ "shll_s.ph %[" #IO6 "], %[" #IO6 "], 7 \n\t" \
+ "shll_s.ph %[" #IO7 "], %[" #IO7 "], 7 \n\t" \
+ "precrqu_s.qb.ph %[" #IO0 "], %[" #IO1 "], %[" #IO0 "] \n\t" \
+ "precrqu_s.qb.ph %[" #IO2 "], %[" #IO3 "], %[" #IO2 "] \n\t" \
+ "precrqu_s.qb.ph %[" #IO4 "], %[" #IO5 "], %[" #IO4 "] \n\t" \
+ "precrqu_s.qb.ph %[" #IO6 "], %[" #IO7 "], %[" #IO6 "] \n\t" \
+ "usw %[" #IO0 "], "XSTR(I13)"*" #I9 "(%[" #I8 "]) \n\t" \
+ "usw %[" #IO2 "], "XSTR(I13)"*" #I10 "(%[" #I8 "]) \n\t" \
+ "usw %[" #IO4 "], "XSTR(I13)"*" #I11 "(%[" #I8 "]) \n\t" \
+ "usw %[" #IO6 "], "XSTR(I13)"*" #I12 "(%[" #I8 "]) \n\t"
#define OUTPUT_EARLY_CLOBBER_REGS_10() \
: [temp1]"=&r"(temp1), [temp2]"=&r"(temp2), [temp3]"=&r"(temp3), \
diff -ru src.3170/Source/OpenEXR/IlmImf/ImfOptimizedPixelReading.h src/Source/OpenEXR/IlmImf/ImfOptimizedPixelReading.h
--- src.3170/Source/OpenEXR/IlmImf/ImfOptimizedPixelReading.h 2015-03-02 00:50:58.000000000 +0100
+++ src/Source/OpenEXR/IlmImf/ImfOptimizedPixelReading.h 2017-06-22 23:06:31.560952100 +0200
@@ -70,7 +70,7 @@
bool
isPointerSSEAligned (const void* EXR_RESTRICT pPointer)
{
- unsigned long trailingBits = ((unsigned long)pPointer) & 15;
+ unsigned long trailingBits = ((unsigned long)(size_t)pPointer) & 15;
return trailingBits == 0;
}
diff -ru src.3170/Source/OpenEXR/IlmImf/ImfSystemSpecific.h src/Source/OpenEXR/IlmImf/ImfSystemSpecific.h
--- src.3170/Source/OpenEXR/IlmImf/ImfSystemSpecific.h 2015-03-02 00:50:58.000000000 +0100
+++ src/Source/OpenEXR/IlmImf/ImfSystemSpecific.h 2017-06-22 22:42:20.741824100 +0200
@@ -54,7 +54,7 @@
#ifdef IMF_HAVE_SSE2
-#ifdef __GNUC__
+#if defined(__GNUC__) && !defined(__MINGW32__)
// Causes issues on certain gcc versions
//#define EXR_FORCEINLINE inline __attribute__((always_inline))
#define EXR_FORCEINLINE inline
( run in 0.500 second using v1.01-cache-2.11-cpan-140bd7fdf52 )