summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS1
-rw-r--r--src/asm_blend.S136
-rw-r--r--src/asm_blend_cmod.S194
-rw-r--r--src/asm_rgba.S40
-rw-r--r--src/asm_rotate.S16
-rw-r--r--src/asm_scale.S16
-rw-r--r--src/common.h3
-rw-r--r--src/file.c12
-rw-r--r--src/image.c18
9 files changed, 256 insertions, 180 deletions
diff --git a/AUTHORS b/AUTHORS
index 015556f..e34bc13 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -8,3 +8,4 @@ Chutt (Isaac Richards) <ijr@po.cwru.edu>
gilbertt (Tom Gilbert) <gilbertt@btinternet.com>
Takis <takis@lumumba.luc.ac.be>
Dan Maas <dmaas@dcine.com>
+pla@cland.ru
diff --git a/src/asm_blend.S b/src/asm_blend.S
index 0a2def9..b1aab28 100644
--- a/src/asm_blend.S
+++ b/src/asm_blend.S
@@ -1,5 +1,15 @@
#include <config.h>
+#ifdef __EMX__
+/* Due to strange behaviour of as.exe we use this macros */
+/* For all OS/2 coders - please use PGCC to compile this code */
+#define PR_(foo) ___##foo
+#define PT_(foo,func) ___##foo,##func
+#else
+#define PR_(foo) __##foo
+#define PT_(foo,func) __##foo,##func
+#endif
+
#ifdef DO_MMX_ASM
/*\
@@ -22,49 +32,49 @@
#define h 28(%ebp)
#define cm 32(%ebp)
-.global __imlib_mmx_blend_rgba_to_rgb
- .type __imlib_mmx_blend_rgba_to_rgb,@function
-.global __imlib_mmx_blend_rgba_to_rgba
- .type __imlib_mmx_blend_rgba_to_rgba,@function
-.global __imlib_mmx_copy_rgba_to_rgb
- .type __imlib_mmx_copy_rgba_to_rgb,@function
-.global __imlib_mmx_copy_rgba_to_rgba
- .type __imlib_mmx_copy_rgba_to_rgba,@function
-.global __imlib_mmx_copy_rgb_to_rgba
-
- .type __imlib_mmx_copy_rgb_to_rgba,@function
-.global __imlib_mmx_add_blend_rgba_to_rgb
- .type __imlib_mmx_add_blend_rgba_to_rgb,@function
-.global __imlib_mmx_add_blend_rgba_to_rgba
- .type __imlib_mmx_add_blend_rgba_to_rgba,@function
-.global __imlib_mmx_add_copy_rgba_to_rgb
- .type __imlib_mmx_add_copy_rgba_to_rgb,@function
-.global __imlib_mmx_add_copy_rgba_to_rgba
- .type __imlib_mmx_add_copy_rgba_to_rgba,@function
-.global __imlib_mmx_add_copy_rgb_to_rgba
- .type __imlib_mmx_add_copy_rgb_to_rgba,@function
-
-.global __imlib_mmx_subtract_blend_rgba_to_rgb
- .type __imlib_mmx_subtract_blend_rgba_to_rgb,@function
-.global __imlib_mmx_subtract_blend_rgba_to_rgba
- .type __imlib_mmx_subtract_blend_rgba_to_rgba,@function
-.global __imlib_mmx_subtract_copy_rgba_to_rgb
- .type __imlib_mmx_subtract_copy_rgba_to_rgb,@function
-.global __imlib_mmx_subtract_copy_rgba_to_rgba
- .type __imlib_mmx_subtract_copy_rgba_to_rgba,@function
-.global __imlib_mmx_subtract_copy_rgb_to_rgba
- .type __imlib_mmx_subtract_copy_rgb_to_rgba,@function
-
-.global __imlib_mmx_reshade_blend_rgba_to_rgb
- .type __imlib_mmx_reshade_blend_rgba_to_rgb,@function
-.global __imlib_mmx_reshade_blend_rgba_to_rgba
- .type __imlib_mmx_reshade_blend_rgba_to_rgba,@function
-.global __imlib_mmx_reshade_copy_rgba_to_rgb
- .type __imlib_mmx_reshade_copy_rgba_to_rgb,@function
-.global __imlib_mmx_reshade_copy_rgba_to_rgba
- .type __imlib_mmx_reshade_copy_rgba_to_rgba,@function
-.global __imlib_mmx_reshade_copy_rgb_to_rgba
- .type __imlib_mmx_reshade_copy_rgb_to_rgba,@function
+.global PR_(imlib_mmx_blend_rgba_to_rgb)
+ .type PT_(imlib_mmx_blend_rgba_to_rgb,@function)
+.global PR_(imlib_mmx_blend_rgba_to_rgba)
+ .type PT_(imlib_mmx_blend_rgba_to_rgba,@function)
+.global PR_(imlib_mmx_copy_rgba_to_rgb)
+ .type PT_(imlib_mmx_copy_rgba_to_rgb,@function)
+.global PR_(imlib_mmx_copy_rgba_to_rgba)
+ .type PT_(imlib_mmx_copy_rgba_to_rgba,@function)
+.global PR_(imlib_mmx_copy_rgb_to_rgba)
+
+ .type PT_(imlib_mmx_copy_rgb_to_rgba,@function)
+.global PR_(imlib_mmx_add_blend_rgba_to_rgb)
+ .type PT_(imlib_mmx_add_blend_rgba_to_rgb,@function)
+.global PR_(imlib_mmx_add_blend_rgba_to_rgba)
+ .type PT_(imlib_mmx_add_blend_rgba_to_rgba,@function)
+.global PR_(imlib_mmx_add_copy_rgba_to_rgb)
+ .type PT_(imlib_mmx_add_copy_rgba_to_rgb,@function)
+.global PR_(imlib_mmx_add_copy_rgba_to_rgba)
+ .type PT_(imlib_mmx_add_copy_rgba_to_rgba,@function)
+.global PR_(imlib_mmx_add_copy_rgb_to_rgba)
+ .type PT_(imlib_mmx_add_copy_rgb_to_rgba,@function)
+
+.global PR_(imlib_mmx_subtract_blend_rgba_to_rgb)
+ .type PT_(imlib_mmx_subtract_blend_rgba_to_rgb,@function)
+.global PR_(imlib_mmx_subtract_blend_rgba_to_rgba)
+ .type PT_(imlib_mmx_subtract_blend_rgba_to_rgba,@function)
+.global PR_(imlib_mmx_subtract_copy_rgba_to_rgb)
+ .type PT_(imlib_mmx_subtract_copy_rgba_to_rgb,@function)
+.global PR_(imlib_mmx_subtract_copy_rgba_to_rgba)
+ .type PT_(imlib_mmx_subtract_copy_rgba_to_rgba,@function)
+.global PR_(imlib_mmx_subtract_copy_rgb_to_rgba)
+ .type PT_(imlib_mmx_subtract_copy_rgb_to_rgba,@function)
+
+.global PR_(imlib_mmx_reshade_blend_rgba_to_rgb)
+ .type PT_(imlib_mmx_reshade_blend_rgba_to_rgb,@function)
+.global PR_(imlib_mmx_reshade_blend_rgba_to_rgba)
+ .type PT_(imlib_mmx_reshade_blend_rgba_to_rgba,@function)
+.global PR_(imlib_mmx_reshade_copy_rgba_to_rgb)
+ .type PT_(imlib_mmx_reshade_copy_rgba_to_rgb,@function)
+.global PR_(imlib_mmx_reshade_copy_rgba_to_rgba)
+ .type PT_(imlib_mmx_reshade_copy_rgba_to_rgba,@function)
+.global PR_(imlib_mmx_reshade_copy_rgb_to_rgba)
+ .type PT_(imlib_mmx_reshade_copy_rgb_to_rgba,@function)
.bss
.text
@@ -139,7 +149,7 @@ c1: .word 0x1, 0x1, 0x1, 0x1
ret
-__imlib_mmx_blend_rgba_to_rgb:
+PR_(imlib_mmx_blend_rgba_to_rgb):
ENTER
pxor %mm4, %mm4
@@ -194,7 +204,7 @@ __imlib_mmx_blend_rgba_to_rgb:
LEAVE
-__imlib_mmx_blend_rgba_to_rgba:
+PR_(imlib_mmx_blend_rgba_to_rgba):
ENTER
pxor %mm4, %mm4
@@ -248,7 +258,7 @@ __imlib_mmx_blend_rgba_to_rgba:
LEAVE
-__imlib_mmx_copy_rgba_to_rgb:
+PR_(imlib_mmx_copy_rgba_to_rgb):
ENTER
movq m0XXX0XXX, %mm5
@@ -291,7 +301,7 @@ __imlib_mmx_copy_rgba_to_rgb:
LEAVE
-__imlib_mmx_copy_rgba_to_rgba:
+PR_(imlib_mmx_copy_rgba_to_rgba):
ENTER
subl $4, %esi
@@ -316,7 +326,7 @@ __imlib_mmx_copy_rgba_to_rgba:
LEAVE
-__imlib_mmx_copy_rgb_to_rgba:
+PR_(imlib_mmx_copy_rgb_to_rgba):
ENTER
movq mX000X000, %mm5
@@ -346,7 +356,7 @@ __imlib_mmx_copy_rgb_to_rgba:
LEAVE
-__imlib_mmx_add_blend_rgba_to_rgb:
+PR_(imlib_mmx_add_blend_rgba_to_rgb):
ENTER
pxor %mm4, %mm4
@@ -386,7 +396,7 @@ __imlib_mmx_add_blend_rgba_to_rgb:
LEAVE
-__imlib_mmx_add_blend_rgba_to_rgba:
+PR_(imlib_mmx_add_blend_rgba_to_rgba):
ENTER
pxor %mm4, %mm4
@@ -434,7 +444,7 @@ __imlib_mmx_add_blend_rgba_to_rgba:
LEAVE
-__imlib_mmx_add_copy_rgba_to_rgb:
+PR_(imlib_mmx_add_copy_rgba_to_rgb):
ENTER
movq m0XXX0XXX, %mm5
@@ -471,7 +481,7 @@ __imlib_mmx_add_copy_rgba_to_rgb:
LEAVE
-__imlib_mmx_add_copy_rgba_to_rgba:
+PR_(imlib_mmx_add_copy_rgba_to_rgba):
ENTER
subl $4, %esi
@@ -502,7 +512,7 @@ __imlib_mmx_add_copy_rgba_to_rgba:
LEAVE
-__imlib_mmx_add_copy_rgb_to_rgba:
+PR_(imlib_mmx_add_copy_rgb_to_rgba):
ENTER
movq mX000X000, %mm5
@@ -539,7 +549,7 @@ __imlib_mmx_add_copy_rgb_to_rgba:
LEAVE
-__imlib_mmx_subtract_blend_rgba_to_rgb:
+PR_(imlib_mmx_subtract_blend_rgba_to_rgb):
ENTER
pxor %mm4, %mm4
@@ -579,7 +589,7 @@ __imlib_mmx_subtract_blend_rgba_to_rgb:
LEAVE
-__imlib_mmx_subtract_blend_rgba_to_rgba:
+PR_(imlib_mmx_subtract_blend_rgba_to_rgba):
ENTER
pxor %mm4, %mm4
@@ -627,7 +637,7 @@ __imlib_mmx_subtract_blend_rgba_to_rgba:
LEAVE
-__imlib_mmx_subtract_copy_rgba_to_rgb:
+PR_(imlib_mmx_subtract_copy_rgba_to_rgb):
ENTER
movq m0XXX0XXX, %mm5
@@ -664,7 +674,7 @@ __imlib_mmx_subtract_copy_rgba_to_rgb:
LEAVE
-__imlib_mmx_subtract_copy_rgba_to_rgba:
+PR_(imlib_mmx_subtract_copy_rgba_to_rgba):
ENTER
movq mX000X000, %mm5
@@ -705,7 +715,7 @@ __imlib_mmx_subtract_copy_rgba_to_rgba:
LEAVE
-__imlib_mmx_subtract_copy_rgb_to_rgba:
+PR_(imlib_mmx_subtract_copy_rgb_to_rgba):
ENTER
movq mX000X000, %mm5
@@ -742,7 +752,7 @@ __imlib_mmx_subtract_copy_rgb_to_rgba:
LEAVE
-__imlib_mmx_reshade_blend_rgba_to_rgb:
+PR_(imlib_mmx_reshade_blend_rgba_to_rgb):
ENTER
pxor %mm4, %mm4
@@ -784,7 +794,7 @@ __imlib_mmx_reshade_blend_rgba_to_rgb:
LEAVE
-__imlib_mmx_reshade_blend_rgba_to_rgba:
+PR_(imlib_mmx_reshade_blend_rgba_to_rgba):
ENTER
pxor %mm4, %mm4
@@ -835,7 +845,7 @@ __imlib_mmx_reshade_blend_rgba_to_rgba:
LEAVE
-__imlib_mmx_reshade_copy_rgba_to_rgb:
+PR_(imlib_mmx_reshade_copy_rgba_to_rgb):
ENTER
pxor %mm4, %mm4
@@ -898,7 +908,7 @@ __imlib_mmx_reshade_copy_rgba_to_rgb:
LEAVE
-__imlib_mmx_reshade_copy_rgba_to_rgba:
+PR_(imlib_mmx_reshade_copy_rgba_to_rgba):
ENTER
pxor %mm4, %mm4
@@ -962,7 +972,7 @@ __imlib_mmx_reshade_copy_rgba_to_rgba:
LEAVE
-__imlib_mmx_reshade_copy_rgb_to_rgba:
+PR_(imlib_mmx_reshade_copy_rgb_to_rgba):
ENTER
pxor %mm4, %mm4
diff --git a/src/asm_blend_cmod.S b/src/asm_blend_cmod.S
index 2c92fe6..5908c1f 100644
--- a/src/asm_blend_cmod.S
+++ b/src/asm_blend_cmod.S
@@ -1,5 +1,15 @@
#include <config.h>
+#ifdef __EMX__
+/* Due to strange behaviour of as.exe we use this macros */
+/* For all OS/2 coders - please use PGCC to compile this code */
+#define PR_(foo) ___##foo
+#define PT_(foo,func) ___##foo,##func
+#else
+#define PR_(foo) __##foo
+#define PT_(foo,func) __##foo,##func
+#endif
+
#ifdef DO_MMX_ASM
/*\
@@ -10,7 +20,7 @@
\*/
/*\ All functions have the same calling convention:
-|*| __imlib_mmx_<op>_rgba_to_rgb[A]_cmod(void *src, int sw, void *dst, int dw,
+|*| PR_(imlib_mmx_<op>_rgba_to_rgb[A]_cmod(void *src, int sw, void *dst, int dw,
|*| int w, int h, ImlibColorModifier *cm)
\*/
@@ -29,69 +39,69 @@
#define amap(x) 0x300(%ebx, x)
#define amap_ff 0x3ff(%ebx)
-.global __imlib_mmx_blend_rgba_to_rgb_cmod
- .type __imlib_mmx_blend_rgba_to_rgb_cmod,@function
-.global __imlib_mmx_blend_rgba_to_rgba_cmod
- .type __imlib_mmx_blend_rgba_to_rgba_cmod,@function
-.global __imlib_mmx_blend_rgb_to_rgb_cmod
- .type __imlib_mmx_blend_rgb_to_rgb_cmod,@function
-.global __imlib_mmx_blend_rgb_to_rgba_cmod
- .type __imlib_mmx_blend_rgb_to_rgba_cmod,@function
-
-.global __imlib_mmx_copy_rgba_to_rgb_cmod
- .type __imlib_mmx_copy_rgba_to_rgb_cmod,@function
-.global __imlib_mmx_copy_rgba_to_rgba_cmod
- .type __imlib_mmx_copy_rgba_to_rgba_cmod,@function
-.global __imlib_mmx_copy_rgb_to_rgba_cmod
- .type __imlib_mmx_copy_rgb_to_rgba_cmod,@function
-
-.global __imlib_mmx_add_blend_rgba_to_rgb_cmod
- .type __imlib_mmx_add_blend_rgba_to_rgb_cmod,@function
-.global __imlib_mmx_add_blend_rgba_to_rgba_cmod
- .type __imlib_mmx_add_blend_rgba_to_rgba_cmod,@function
-.global __imlib_mmx_add_blend_rgb_to_rgb_cmod
- .type __imlib_mmx_add_blend_rgb_to_rgb_cmod,@function
-.global __imlib_mmx_add_blend_rgb_to_rgba_cmod
- .type __imlib_mmx_add_blend_rgb_to_rgba_cmod,@function
-
-.global __imlib_mmx_add_copy_rgba_to_rgb_cmod
- .type __imlib_mmx_add_copy_rgba_to_rgb_cmod,@function
-.global __imlib_mmx_add_copy_rgba_to_rgba_cmod
- .type __imlib_mmx_add_copy_rgba_to_rgba_cmod,@function
-.global __imlib_mmx_add_copy_rgb_to_rgba_cmod
- .type __imlib_mmx_add_copy_rgb_to_rgba_cmod,@function
-
-.global __imlib_mmx_subtract_blend_rgba_to_rgb_cmod
- .type __imlib_mmx_subtract_blend_rgba_to_rgb_cmod,@function
-.global __imlib_mmx_subtract_blend_rgba_to_rgba_cmod
- .type __imlib_mmx_subtract_blend_rgba_to_rgba_cmod,@function
-.global __imlib_mmx_subtract_blend_rgb_to_rgb_cmod
- .type __imlib_mmx_subtract_blend_rgb_to_rgb_cmod,@function
-.global __imlib_mmx_subtract_blend_rgb_to_rgba_cmod
- .type __imlib_mmx_subtract_blend_rgb_to_rgba_cmod,@function
-
-.global __imlib_mmx_subtract_copy_rgba_to_rgb_cmod
- .type __imlib_mmx_subtract_copy_rgba_to_rgb_cmod,@function
-.global __imlib_mmx_subtract_copy_rgba_to_rgba_cmod
- .type __imlib_mmx_subtract_copy_rgba_to_rgba_cmod,@function
-.global __imlib_mmx_subtract_copy_rgb_to_rgba_cmod
- .type __imlib_mmx_subtract_copy_rgb_to_rgba_cmod,@function
-
-.global __imlib_mmx_reshade_blend_rgba_to_rgb_cmod
- .type __imlib_mmx_reshade_blend_rgba_to_rgb_cmod,@function
-.global __imlib_mmx_reshade_blend_rgba_to_rgba_cmod
- .type __imlib_mmx_reshade_blend_rgba_to_rgba_cmod,@function
-.global __imlib_mmx_reshade_blend_rgb_to_rgb_cmod
- .type __imlib_mmx_reshade_blend_rgb_to_rgb_cmod,@function
-.global __imlib_mmx_reshade_blend_rgb_to_rgba_cmod
- .type __imlib_mmx_reshade_blend_rgb_to_rgba_cmod,@function
-
-.global __imlib_mmx_reshade_copy_rgba_to_rgb_cmod
- .type __imlib_mmx_reshade_copy_rgba_to_rgb_cmod,@function
-.global __imlib_mmx_reshade_copy_rgba_to_rgba_cmod
- .type __imlib_mmx_reshade_copy_rgba_to_rgba_cmod,@function
-.global __imlib_mmx_reshade_copy_rgb_to_rgba_cmod
- .type __imlib_mmx_reshade_copy_rgb_to_rgba_cmod,@function
+.global PR_(imlib_mmx_blend_rgba_to_rgb_cmod)
+ .type PT_(imlib_mmx_blendd_rgba_to_rgb_cmod,@function)
+.global PR_(imlib_mmx_blend_rgba_to_rgba_cmod)
+ .type PT_(imlib_mmx_blend_rgba_to_rgba_cmod,@function)
+.global PR_(imlib_mmx_blend_rgb_to_rgb_cmod)
+ .type PT_(imlib_mmx_blend_rgb_to_rgb_cmod,@function)
+.global PR_(imlib_mmx_blend_rgb_to_rgba_cmod)
+ .type PT_(imlib_mmx_blend_rgb_to_rgba_cmod,@function)
+
+.global PR_(imlib_mmx_copy_rgba_to_rgb_cmod)
+ .type PT_(imlib_mmx_copy_rgba_to_rgb_cmod,@function)
+.global PR_(imlib_mmx_copy_rgba_to_rgba_cmod)
+ .type PT_(imlib_mmx_copy_rgba_to_rgba_cmod,@function)
+.global PR_(imlib_mmx_copy_rgb_to_rgba_cmod)
+ .type PT_(imlib_mmx_copy_rgb_to_rgba_cmod,@function)
+
+.global PR_(imlib_mmx_add_blend_rgba_to_rgb_cmod)
+ .type PT_(imlib_mmx_add_blend_rgba_to_rgb_cmod,@function)
+.global PR_(imlib_mmx_add_blend_rgba_to_rgba_cmod)
+ .type PT_(imlib_mmx_add_blend_rgba_to_rgba_cmod,@function)
+.global PR_(imlib_mmx_add_blend_rgb_to_rgb_cmod)
+ .type PT_(imlib_mmx_add_blend_rgb_to_rgb_cmod,@function)
+.global PR_(imlib_mmx_add_blend_rgb_to_rgba_cmod)
+ .type PT_(imlib_mmx_add_blend_rgb_to_rgba_cmod,@function)
+
+.global PR_(imlib_mmx_add_copy_rgba_to_rgb_cmod)
+ .type PT_(imlib_mmx_add_copy_rgba_to_rgb_cmod,@function)
+.global PR_(imlib_mmx_add_copy_rgba_to_rgba_cmod)
+ .type PT_(imlib_mmx_add_copy_rgba_to_rgba_cmod,@function)
+.global PR_(imlib_mmx_add_copy_rgb_to_rgba_cmod)
+ .type PT_(imlib_mmx_add_copy_rgb_to_rgba_cmod,@function)
+
+.global PR_(imlib_mmx_subtract_blend_rgba_to_rgb_cmod)
+ .type PT_(imlib_mmx_subtract_blend_rgba_to_rgb_cmod,@function)
+.global PR_(imlib_mmx_subtract_blend_rgba_to_rgba_cmod)
+ .type PT_(imlib_mmx_subtract_blend_rgba_to_rgba_cmod,@function)
+.global PR_(imlib_mmx_subtract_blend_rgb_to_rgb_cmod)
+ .type PT_(imlib_mmx_subtract_blend_rgb_to_rgb_cmod,@function)
+.global PR_(imlib_mmx_subtract_blend_rgb_to_rgba_cmod)
+ .type PT_(imlib_mmx_subtract_blend_rgb_to_rgba_cmod,@function)
+
+.global PR_(imlib_mmx_subtract_copy_rgba_to_rgb_cmod)
+ .type PT_(imlib_mmx_subtract_copy_rgba_to_rgb_cmod,@function)
+.global PR_(imlib_mmx_subtract_copy_rgba_to_rgba_cmod)
+ .type PT_(imlib_mmx_subtract_copy_rgba_to_rgba_cmod,@function)
+.global PR_(imlib_mmx_subtract_copy_rgb_to_rgba_cmod)
+ .type PT_(imlib_mmx_subtract_copy_rgb_to_rgba_cmod,@function)
+
+.global PR_(imlib_mmx_reshade_blend_rgba_to_rgb_cmod)
+ .type PT_(imlib_mmx_reshade_blend_rgba_to_rgb_cmod,@function)
+.global PR_(imlib_mmx_reshade_blend_rgba_to_rgba_cmod)
+ .type PT_(imlib_mmx_reshade_blend_rgba_to_rgba_cmod,@function)
+.global PR_(imlib_mmx_reshade_blend_rgb_to_rgb_cmod)
+ .type PT_(imlib_mmx_reshade_blend_rgb_to_rgb_cmod,@function)
+.global PR_(imlib_mmx_reshade_blend_rgb_to_rgba_cmod)
+ .type PT_(imlib_mmx_reshade_blend_rgb_to_rgba_cmod,@function)
+
+.global PR_(imlib_mmx_reshade_copy_rgba_to_rgb_cmod)
+ .type PT_(imlib_mmx_reshade_copy_rgba_to_rgb_cmod,@function)
+.global PR_(imlib_mmx_reshade_copy_rgba_to_rgba_cmod)
+ .type PT_(imlib_mmx_reshade_copy_rgba_to_rgba_cmod,@function)
+.global PR_(imlib_mmx_reshade_copy_rgb_to_rgba_cmod)
+ .type PT_(imlib_mmx_reshade_copy_rgb_to_rgba_cmod,@function)
.bss
.text
@@ -343,7 +353,7 @@ c1: .word 0x1, 0x1, 0x1, 0x1
-__imlib_mmx_blend_rgba_to_rgb_cmod:
+PR_(imlib_mmx_blend_rgba_to_rgb_cmod):
ENTER
pxor %mm4, %mm4
@@ -398,7 +408,7 @@ __imlib_mmx_blend_rgba_to_rgb_cmod:
LEAVE
-__imlib_mmx_blend_rgba_to_rgba_cmod:
+PR_(imlib_mmx_blend_rgba_to_rgba_cmod):
ENTER
pxor %mm4, %mm4
@@ -452,7 +462,7 @@ __imlib_mmx_blend_rgba_to_rgba_cmod:
LEAVE
-__imlib_mmx_blend_rgb_to_rgb_cmod:
+PR_(imlib_mmx_blend_rgb_to_rgb_cmod):
ENTER
pxor %mm4, %mm4
@@ -495,7 +505,7 @@ __imlib_mmx_blend_rgb_to_rgb_cmod:
LEAVE
-__imlib_mmx_blend_rgb_to_rgba_cmod:
+PR_(imlib_mmx_blend_rgb_to_rgba_cmod):
ENTER
pxor %mm4, %mm4
@@ -549,7 +559,7 @@ __imlib_mmx_blend_rgb_to_rgba_cmod:
LEAVE
-__imlib_mmx_copy_rgba_to_rgb_cmod:
+PR_(imlib_mmx_copy_rgba_to_rgb_cmod):
ENTER
LOOP_START
@@ -571,7 +581,7 @@ __imlib_mmx_copy_rgba_to_rgb_cmod:
LEAVE
-__imlib_mmx_copy_rgba_to_rgba_cmod:
+PR_(imlib_mmx_copy_rgba_to_rgba_cmod):
ENTER
LOOP_START
@@ -596,7 +606,7 @@ __imlib_mmx_copy_rgba_to_rgba_cmod:
LEAVE
-__imlib_mmx_copy_rgb_to_rgba_cmod:
+PR_(imlib_mmx_copy_rgb_to_rgba_cmod):
ENTER
LOOP_START
@@ -619,7 +629,7 @@ __imlib_mmx_copy_rgb_to_rgba_cmod:
LEAVE
-__imlib_mmx_add_blend_rgba_to_rgb_cmod:
+PR_(imlib_mmx_add_blend_rgba_to_rgb_cmod):
ENTER
pxor %mm4, %mm4
@@ -659,7 +669,7 @@ __imlib_mmx_add_blend_rgba_to_rgb_cmod:
LEAVE
-__imlib_mmx_add_blend_rgba_to_rgba_cmod:
+PR_(imlib_mmx_add_blend_rgba_to_rgba_cmod):
ENTER
pxor %mm4, %mm4
@@ -707,7 +717,7 @@ __imlib_mmx_add_blend_rgba_to_rgba_cmod:
LEAVE
-__imlib_mmx_add_blend_rgb_to_rgb_cmod:
+PR_(imlib_mmx_add_blend_rgb_to_rgb_cmod):
ENTER
pxor %mm4, %mm4
@@ -747,7 +757,7 @@ __imlib_mmx_add_blend_rgb_to_rgb_cmod:
LEAVE
-__imlib_mmx_add_blend_rgb_to_rgba_cmod:
+PR_(imlib_mmx_add_blend_rgb_to_rgba_cmod):
ENTER
pxor %mm4, %mm4
@@ -795,7 +805,7 @@ __imlib_mmx_add_blend_rgb_to_rgba_cmod:
LEAVE
-__imlib_mmx_add_copy_rgba_to_rgb_cmod:
+PR_(imlib_mmx_add_copy_rgba_to_rgb_cmod):
ENTER
movq m0XXX0XXX, %mm5
@@ -832,7 +842,7 @@ __imlib_mmx_add_copy_rgba_to_rgb_cmod:
LEAVE
-__imlib_mmx_add_copy_rgba_to_rgba_cmod:
+PR_(imlib_mmx_add_copy_rgba_to_rgba_cmod):
ENTER
subl $4, %esi
@@ -863,7 +873,7 @@ __imlib_mmx_add_copy_rgba_to_rgba_cmod:
LEAVE
-__imlib_mmx_add_copy_rgb_to_rgba_cmod:
+PR_(imlib_mmx_add_copy_rgb_to_rgba_cmod):
ENTER
subl $4, %esi
@@ -894,7 +904,7 @@ __imlib_mmx_add_copy_rgb_to_rgba_cmod:
LEAVE
-__imlib_mmx_subtract_blend_rgba_to_rgb_cmod:
+PR_(imlib_mmx_subtract_blend_rgba_to_rgb_cmod):
ENTER
pxor %mm4, %mm4
@@ -934,7 +944,7 @@ __imlib_mmx_subtract_blend_rgba_to_rgb_cmod:
LEAVE
-__imlib_mmx_subtract_blend_rgba_to_rgba_cmod:
+PR_(imlib_mmx_subtract_blend_rgba_to_rgba_cmod):
ENTER
pxor %mm4, %mm4
@@ -982,7 +992,7 @@ __imlib_mmx_subtract_blend_rgba_to_rgba_cmod:
LEAVE
-__imlib_mmx_subtract_blend_rgb_to_rgb_cmod:
+PR_(imlib_mmx_subtract_blend_rgb_to_rgb_cmod):
ENTER
pxor %mm4, %mm4
@@ -1022,7 +1032,7 @@ __imlib_mmx_subtract_blend_rgb_to_rgb_cmod:
LEAVE
-__imlib_mmx_subtract_blend_rgb_to_rgba_cmod:
+PR_(imlib_mmx_subtract_blend_rgb_to_rgba_cmod):
ENTER
pxor %mm4, %mm4
@@ -1070,7 +1080,7 @@ __imlib_mmx_subtract_blend_rgb_to_rgba_cmod:
LEAVE
-__imlib_mmx_subtract_copy_rgba_to_rgb_cmod:
+PR_(imlib_mmx_subtract_copy_rgba_to_rgb_cmod):
ENTER
movq m0XXX0XXX, %mm5
@@ -1107,7 +1117,7 @@ __imlib_mmx_subtract_copy_rgba_to_rgb_cmod:
LEAVE
-__imlib_mmx_subtract_copy_rgba_to_rgba_cmod:
+PR_(imlib_mmx_subtract_copy_rgba_to_rgba_cmod):
ENTER
movq mX000X000, %mm5
@@ -1148,7 +1158,7 @@ __imlib_mmx_subtract_copy_rgba_to_rgba_cmod:
LEAVE
-__imlib_mmx_subtract_copy_rgb_to_rgba_cmod:
+PR_(imlib_mmx_subtract_copy_rgb_to_rgba_cmod):
ENTER
movq mX000X000, %mm5
@@ -1185,7 +1195,7 @@ __imlib_mmx_subtract_copy_rgb_to_rgba_cmod:
LEAVE
-__imlib_mmx_reshade_blend_rgba_to_rgb_cmod:
+PR_(imlib_mmx_reshade_blend_rgba_to_rgb_cmod):
ENTER
pxor %mm4, %mm4
@@ -1227,7 +1237,7 @@ __imlib_mmx_reshade_blend_rgba_to_rgb_cmod:
LEAVE
-__imlib_mmx_reshade_blend_rgba_to_rgba_cmod:
+PR_(imlib_mmx_reshade_blend_rgba_to_rgba_cmod):
ENTER
pxor %mm4, %mm4
@@ -1278,7 +1288,7 @@ __imlib_mmx_reshade_blend_rgba_to_rgba_cmod:
LEAVE
-__imlib_mmx_reshade_blend_rgb_to_rgb_cmod:
+PR_(imlib_mmx_reshade_blend_rgb_to_rgb_cmod):
ENTER
pxor %mm4, %mm4
@@ -1320,7 +1330,7 @@ __imlib_mmx_reshade_blend_rgb_to_rgb_cmod:
LEAVE
-__imlib_mmx_reshade_blend_rgb_to_rgba_cmod:
+PR_(imlib_mmx_reshade_blend_rgb_to_rgba_cmod):
ENTER
pxor %mm4, %mm4
@@ -1371,7 +1381,7 @@ __imlib_mmx_reshade_blend_rgb_to_rgba_cmod:
LEAVE
-__imlib_mmx_reshade_copy_rgba_to_rgb_cmod:
+PR_(imlib_mmx_reshade_copy_rgba_to_rgb_cmod):
ENTER
pxor %mm4, %mm4
@@ -1434,7 +1444,7 @@ __imlib_mmx_reshade_copy_rgba_to_rgb_cmod:
LEAVE
-__imlib_mmx_reshade_copy_rgba_to_rgba_cmod:
+PR_(imlib_mmx_reshade_copy_rgba_to_rgba_cmod):
ENTER
pxor %mm4, %mm4
@@ -1498,7 +1508,7 @@ __imlib_mmx_reshade_copy_rgba_to_rgba_cmod:
LEAVE
-__imlib_mmx_reshade_copy_rgb_to_rgba_cmod:
+PR_(imlib_mmx_reshade_copy_rgb_to_rgba_cmod):
ENTER
pxor %mm4, %mm4
diff --git a/src/asm_rgba.S b/src/asm_rgba.S
index a900cf7..a156bc5 100644
--- a/src/asm_rgba.S
+++ b/src/asm_rgba.S
@@ -1,5 +1,15 @@
#include <config.h>
+#ifdef __EMX__
+/* Due to strange behaviour of as.exe we use this macros */
+/* For all OS/2 coders - please use PGCC to compile this code */
+#define PR_(foo) ___##foo
+#define PT_(foo,func) ___##foo,##func
+#else
+#define PR_(foo) __##foo
+#define PT_(foo,func) __##foo,##func
+#endif
+
#ifdef DO_MMX_ASM
/*\
@@ -23,17 +33,17 @@
#define dx 32(%ebp)
#define dy 36(%ebp)
-.global __imlib_mmx_rgb565_fast
- .type __imlib_mmx_rgb565_fast,@function
-.global __imlib_mmx_bgr565_fast
- .type __imlib_mmx_bgr565_fast,@function
-.global __imlib_mmx_rgb555_fast
- .type __imlib_mmx_rgb555_fast,@function
-.global __imlib_mmx_bgr555_fast
- .type __imlib_mmx_bgr555_fast,@function
+.global PR_(imlib_mmx_rgb565_fast)
+ .type PT_(imlib_mmx_rgb565_fast,@function)
+.global PR_(imlib_mmx_bgr565_fast)
+ .type PT_(imlib_mmx_bgr565_fast,@function)
+.global PR_(imlib_mmx_rgb555_fast)
+ .type PT_(imlib_mmx_rgb555_fast,@function)
+.global PR_(imlib_mmx_bgr555_fast)
+ .type PT_(imlib_mmx_bgr555_fast,@function)
-.global __imlib_get_cpuid
- .type __imlib_get_cpuid,@function
+.global PR_(imlib_get_cpuid)
+ .type PT_(imlib_get_cpuid,@function)
.bss
.text
@@ -96,11 +106,11 @@ mul_bgr555: .long 0x00082000, 0x00082000
-__imlib_mmx_bgr565_fast:
+PR_(imlib_mmx_bgr565_fast):
movq mul_bgr565, %mm7 /*\ This constant is the only difference \*/
jmp .rgb565_fast_entry
-__imlib_mmx_rgb565_fast:
+PR_(imlib_mmx_rgb565_fast):
movq mul_rgb565, %mm7
.rgb565_fast_entry:
ENTER
@@ -172,11 +182,11 @@ __imlib_mmx_rgb565_fast:
-__imlib_mmx_bgr555_fast:
+PR_(imlib_mmx_bgr555_fast):
movq mul_bgr555, %mm7 /*\ This constant is the only difference \*/
jmp .rgb555_fast_entry
-__imlib_mmx_rgb555_fast:
+PR_(imlib_mmx_rgb555_fast):
movq mul_rgb555, %mm7
.rgb555_fast_entry:
ENTER
@@ -244,7 +254,7 @@ __imlib_mmx_rgb555_fast:
LEAVE
-__imlib_get_cpuid:
+PR_(imlib_get_cpuid):
pushl %ebx
pushl %edx
diff --git a/src/asm_rotate.S b/src/asm_rotate.S
index 4bc1af1..b5bc400 100644
--- a/src/asm_rotate.S
+++ b/src/asm_rotate.S
@@ -1,5 +1,15 @@
#include <config.h>
+#ifdef __EMX__
+/* Due to strange behaviour of as.exe we use this macros */
+/* For all OS/2 coders - please use PGCC to compile this code */
+#define PR_(foo) ___##foo
+#define PT_(foo,func) ___##foo,##func
+#else
+#define PR_(foo) __##foo
+#define PT_(foo,func) __##foo,##func
+#endif
+
#ifdef DO_MMX_ASM
/*\
@@ -7,8 +17,8 @@
|*| Written by Willem Monsuwe <willem@stack.nl>
\*/
-.global __imlib_mmx_RotateAA
- .type __imlib_mmx_RotateAA,@function
+.global PR_(imlib_mmx_RotateAA)
+ .type PT_(imlib_mmx_RotateAA,@function)
.bss
.text
@@ -44,7 +54,7 @@
#define m0fff -28(%ebp)
#define mulsow -32(%ebp)
-__imlib_mmx_RotateAA:
+PR_(imlib_mmx_RotateAA):
pushl %ebp
movl %esp, %ebp
subl $40, %esp
diff --git a/src/asm_scale.S b/src/asm_scale.S
index b2e3e60..4f4ca1a 100644
--- a/src/asm_scale.S
+++ b/src/asm_scale.S
@@ -1,5 +1,15 @@
#include <config.h>
+#ifdef __EMX__
+/* Due to strange behaviour of as.exe we use this macros */
+/* For all OS/2 coders - please use PGCC to compile this code */
+#define PR_(foo) ___##foo
+#define PT_(foo,func) ___##foo,##func
+#else
+#define PR_(foo) __##foo
+#define PT_(foo,func) __##foo,##func
+#endif
+
#ifdef DO_MMX_ASM
/*\
@@ -7,8 +17,8 @@
|*| Written by Willem Monsuwe <willem@stack.nl>
\*/
-.global __imlib_Scale_mmx_AARGBA
- .type __imlib_Scale_mmx_AARGBA,@function
+.global PR_(imlib_Scale_mmx_AARGBA)
+ .type PT_(imlib_Scale_mmx_AARGBA,@function)
.bss
.text
@@ -48,7 +58,7 @@
#define yapoints 12(%edx)
#define xup_yup 16(%edx)
-__imlib_Scale_mmx_AARGBA:
+PR_(imlib_Scale_mmx_AARGBA):
pushl %ebp
movl %esp, %ebp
subl $40, %esp
diff --git a/src/common.h b/src/common.h
index 06b6173..7a0a7b0 100644
--- a/src/common.h
+++ b/src/common.h
@@ -3,6 +3,9 @@
#include <stdio.h>
#include <stdlib.h>
+#ifdef __EMX__
+#include <sys/types.h>
+#endif
#include <unistd.h>
#include <config.h>
#ifdef WITH_DMALLOC
diff --git a/src/file.c b/src/file.c
index d30afc8..e56e158 100644
--- a/src/file.c
+++ b/src/file.c
@@ -1,5 +1,8 @@
#include <stdio.h>
#include <ctype.h>
+#ifdef __EMX__
+#include <sys/types.h>
+#endif
#include <sys/stat.h>
#include <unistd.h>
#include <sys/types.h>
@@ -195,7 +198,7 @@ __imlib_FileHomeDir(int uid)
static char *usr_s = NULL;
char *s;
struct passwd *pwd;
-
+#ifndef __EMX__
s = getenv("HOME");
if (s)
return strdup(s);
@@ -213,9 +216,16 @@ __imlib_FileHomeDir(int uid)
usr_s = strdup(s);
return(s);
}
+#else
+ if ((s = getenv("HOME")) != NULL)
+ return strdup(s);
+ else if ((s = getenv("TMP")) != NULL)
+ return strdup(s);
+#endif
return NULL;
}
+
/* gets word number [num] in the string [s] and copies it into [wd] */
/* wd is NULL terminated. If word [num] does not exist wd = "" */
/* NB: this function now handles quotes so for a line: */
diff --git a/src/image.c b/src/image.c
index f8b2fc3..a686e71 100644
--- a/src/image.c
+++ b/src/image.c
@@ -11,6 +11,10 @@
#include "file.h"
#include "loaderpath.h"
+#ifdef __EMX__
+extern char *__XOS2RedirRoot(const char *);
+#endif
+
static ImlibImage *images = NULL;
static ImlibImagePixmap *pixmaps = NULL;
static ImlibLoader *loaders = NULL;
@@ -709,9 +713,17 @@ __imlib_RescanLoaders(void)
return;
/* ok - was the system loaders dir contents modified ? */
last_scan_time = current_time;
- if (__imlib_FileIsDir(SYS_LOADERS_PATH "/image/"))
- {
- current_time = __imlib_FileModDate(SYS_LOADERS_PATH "/image/");
+#ifndef __EMX__
+ if (__imlib_FileIsDir(SYS_LOADERS_PATH "/image/"))
+#else
+ if (__imlib_FileIsDir(__XOS2RedirRoot(SYS_LOADERS_PATH "/image/")))
+#endif
+ {
+#ifndef __EMX__
+ current_time = __imlib_FileModDate(SYS_LOADERS_PATH "/image/");
+#else
+ current_time = __imlib_FileModDate(__XOS2RedirRoot(SYS_LOADERS_PATH "/image/"));
+#endif
if (current_time > last_modified_system_time)
{
/* yup - set the "do_reload" flag */