From 042c1bff12bad531adc7708640fb2186738490b5 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Fri, 19 May 2006 09:04:41 +0000 Subject: [PATCH] dropshadow module.eap - almost ready to nuke the module iconand use eap's SVN revision: 22731 --- src/bin/e_mmx.h | 184 ++++++++++++++++++------- src/modules/dropshadow/Makefile.am | 1 + src/modules/dropshadow/module.eap | Bin 0 -> 4884 bytes src/modules/dropshadow/module_icon.png | Bin 647 -> 1821 bytes src/modules/ibox/module.eap | Bin 5888 -> 5888 bytes 5 files changed, 137 insertions(+), 48 deletions(-) create mode 100644 src/modules/dropshadow/module.eap diff --git a/src/bin/e_mmx.h b/src/bin/e_mmx.h index 957092435..57ae56e03 100644 --- a/src/bin/e_mmx.h +++ b/src/bin/e_mmx.h @@ -118,6 +118,16 @@ typedef union { : "=m" (mem) \ : /* nothing */ ) +#define mmx_a2r(op, mem, reg) \ + __asm__ __volatile__ (#op " %0, %%" #reg \ + : /* nothing */ \ + : "m" (mem)) + +#define mmx_r2a(op, reg, mem) \ + __asm__ __volatile__ (#op " %%" #reg ", %0" \ + : "=m" (mem) \ + : /* nothing */ ) + #define mmx_r2r(op, regs, regd) \ __asm__ __volatile__ (#op " %" #regs ", %" #regd) @@ -125,10 +135,10 @@ typedef union { __asm__ __volatile__ ("movq %0, %%mm0\n\t" \ #op " %1, %%mm0\n\t" \ "movq %%mm0, %0" \ - : "=m" (memd) \ - : "m" (mems)) + : "=X" (memd) \ + : "X" (mems)) -/* 1x64 MOVe Quadword +/* 1x64 MOVE Quadword (this is both a load and a store... in fact, it is the only way to store) */ @@ -138,24 +148,24 @@ typedef union { #define movq(vars, vard) \ __asm__ __volatile__ ("movq %1, %%mm0\n\t" \ "movq %%mm0, %0" \ - : "=m" (vard) \ - : "m" (vars)) + : "=X" (vard) \ + : "X" (vars)) #define movntq_r2m(reg, var) mmx_r2m(movntq, reg, var) -/* 1x32 MOVe Doubleword +/* 1x32 MOVE Doubleword (like movq, this is both load and store... but is most useful for moving things between mmx registers and ordinary registers) */ -#define movd_m2r(var, reg) mmx_m2r(movd, var, reg) -#define movd_r2m(reg, var) mmx_r2m(movd, reg, var) +#define movd_m2r(var, reg) mmx_a2r(movd, var, reg) +#define movd_r2m(reg, var) mmx_r2a(movd, reg, var) #define movd_r2r(regs, regd) mmx_r2r(movd, regs, regd) #define movd(vars, vard) \ __asm__ __volatile__ ("movd %1, %%mm0\n\t" \ "movd %%mm0, %0" \ - : "=m" (vard) \ - : "m" (vars)) + : "=X" (vard) \ + : "X" (vars)) /* 2x32, 4x16, and 8x8 Parallel ADDs @@ -511,6 +521,50 @@ typedef union { : "q" (dst), "r" (src) \ : "memory", "st"); +#define MOVE_32DWORDS_SSE2(src,dst) \ + __asm__ ( \ + "movdqu (%1), %%xmm0 \n" \ + "movdqu 0x10(%1), %%xmm1 \n" \ + "movdqu 0x20(%1), %%xmm2 \n" \ + "movdqu 0x30(%1), %%xmm3 \n" \ + "movdqu 0x40(%1), %%xmm4 \n" \ + "movdqu 0x50(%1), %%xmm5 \n" \ + "movdqu 0x60(%1), %%xmm6 \n" \ + "movdqu 0x70(%1), %%xmm7 \n" \ + "movntdq %%xmm0, (%0) \n" \ + "movntdq %%xmm1, 0x10(%0) \n" \ + "movntdq %%xmm2, 0x20(%0) \n" \ + "movntdq %%xmm3, 0x30(%0) \n" \ + "movntdq %%xmm4, 0x40(%0) \n" \ + "movntdq %%xmm5, 0x50(%0) \n" \ + "movntdq %%xmm6, 0x60(%0) \n" \ + "movntdq %%xmm7, 0x70(%0) \n" \ + : \ + : "q" (dst), "r" (src) \ + : "memory", "st"); + +#define MOVE_32DWORDS_ALIGNED_SSE2(src,dst) \ + __asm__ ( \ + "movdqa (%1), %%xmm0 \n" \ + "movdqa 0x10(%1), %%xmm1 \n" \ + "movdqa 0x20(%1), %%xmm2 \n" \ + "movdqa 0x30(%1), %%xmm3 \n" \ + "movdqa 0x40(%1), %%xmm4 \n" \ + "movdqa 0x50(%1), %%xmm5 \n" \ + "movdqa 0x60(%1), %%xmm6 \n" \ + "movdqa 0x70(%1), %%xmm7 \n" \ + "movntdq %%xmm0, (%0) \n" \ + "movntdq %%xmm1, 0x10(%0) \n" \ + "movntdq %%xmm2, 0x20(%0) \n" \ + "movntdq %%xmm3, 0x30(%0) \n" \ + "movntdq %%xmm4, 0x40(%0) \n" \ + "movntdq %%xmm5, 0x50(%0) \n" \ + "movntdq %%xmm6, 0x60(%0) \n" \ + "movntdq %%xmm7, 0x70(%0) \n" \ + : \ + : "q" (dst), "r" (src) \ + : "memory", "st"); + /* Empty MMx State (used to clean-up when going from mmx to float use of the registers that are shared by both; note that @@ -530,43 +584,43 @@ typedef union { #ifdef __amd64 #define have_cpuid(cpuid_ret) \ - __asm__ __volatile__ ( \ - ".align 32 \n" \ - " pushq %%rbx \n" \ - " pushfq \n" \ - " popq %%rax \n" \ - " movq %%rax, %%rbx \n" \ - " xorq $0x200000, %%rax \n" \ - " pushq %%rax \n" \ - " popfq \n" \ - " pushfq \n" \ - " popq %%rax \n" \ - " cmpq %%rax, %%rbx \n" \ - " je 1f \n" \ - " movl $1, %0 \n" \ - " jmp 2f \n" \ - "1: \n" \ - " movl $0, %0 \n" \ - "2: \n" \ - " popq %%rbx \n" \ - : "=m" (cpuid_ret) \ - ); + __asm__ __volatile__ ( \ + ".align 32 \n" \ + " pushq %%rbx \n" \ + " pushfq \n" \ + " popq %%rax \n" \ + " movq %%rax, %%rbx \n" \ + " xorq $0x200000, %%rax \n" \ + " pushq %%rax \n" \ + " popfq \n" \ + " pushfq \n" \ + " popq %%rax \n" \ + " cmpq %%rax, %%rbx \n" \ + " je 1f \n" \ + " movl $1, %0 \n" \ + " jmp 2f \n" \ + "1: \n" \ + " movl $0, %0 \n" \ + "2: \n" \ + " popq %%rbx \n" \ + : "=m" (cpuid_ret) \ + ); #define get_cpuid(cpuid_ret) \ - __asm__ __volatile__ ( \ - ".align 32 \n" \ - " pushq %%rax \n" \ - " movl $1, %%eax \n" \ - " cpuid \n" \ - " test $0x00800000, %%edx\n" \ - "1: \n" \ - " movl %%edx, %0 \n" \ - " jmp 2f \n" \ - "2: \n" \ - " movl $0, %0 \n" \ - " popq %%rax \n" \ - : "=m" (cpuid_ret) \ - ); + __asm__ __volatile__ ( \ + ".align 32 \n" \ + " pushq %%rax \n" \ + " movl $1, %%eax \n" \ + " cpuid \n" \ + " test $0x00800000, %%edx\n" \ + "1: \n" \ + " movl %%edx, %0 \n" \ + " jmp 2f \n" \ + "2: \n" \ + " movl $0, %0 \n" \ + " popq %%rax \n" \ + : "=m" (cpuid_ret) \ + ); #else #define have_cpuid(cpuid_ret) \ __asm__ __volatile__ ( \ @@ -607,8 +661,6 @@ typedef union { : "=m" (cpuid_ret) \ ); #endif - -/* P3 instructions - need to figure how to detect? */ #define prefetch(var) \ __asm__ __volatile__ ( \ "prefetchnta (%0) \n" \ @@ -638,7 +690,43 @@ typedef union { "pshufw $" #imm ", %" #r1 ", %" #r2 " \n" \ ); +#define pshufhw(r1, r2, imm) \ + __asm__ __volatile__ ( \ + "pshufhw $" #imm ", %" #r1 ", %" #r2 " \n" \ + ); + +#define pshuflw(r1, r2, imm) \ + __asm__ __volatile__ ( \ + "pshuflw $" #imm ", %" #r1 ", %" #r2 " \n" \ + ); +#define pshufd(r1, r2, imm) \ + __asm__ __volatile__ ( \ + "pshufd $" #imm ", %" #r1 ", %" #r2 " \n" \ + ); + +/* 1x238 MOVE Doouble Quadword + (this is both a load and a store... + in fact, it is the only way to store) +*/ +#define movdqu_m2r(var, reg) mmx_m2r(movdqu, var, reg) +#define movdqu_r2m(reg, var) mmx_r2m(movdqu, reg, var) +#define movdqu_r2r(regs, regd) mmx_r2r(movdqu, regs, regd) +#define movdqu(vars, vard) \ + __asm__ __volatile__ ("movdqu %1, %%xmm0\n\t" \ + "movdqu %%xmm0, %0" \ + : "=X" (vard) \ + : "X" (vars)) +#define movdqa_m2r(var, reg) mmx_m2r(movdqa, var, reg) +#define movdqa_r2m(reg, var) mmx_r2m(movdqa, reg, var) +#define movdqa_r2r(regs, regd) mmx_r2r(movdqa, regs, regd) +#define movdqa(vars, vard) \ + __asm__ __volatile__ ("movdqa %1, %%xmm0\n\t" \ + "movdqa %%xmm0, %0" \ + : "=X" (vard) \ + : "X" (vars)) +#define movntdq_r2m(reg, var) mmx_r2m(movntdq, reg, var) + + /* end additions */ #endif - diff --git a/src/modules/dropshadow/Makefile.am b/src/modules/dropshadow/Makefile.am index c5a07a315..e284bf9f2 100644 --- a/src/modules/dropshadow/Makefile.am +++ b/src/modules/dropshadow/Makefile.am @@ -4,6 +4,7 @@ MODULE = dropshadow # data files for the module filesdir = $(libdir)/enlightenment/modules/$(MODULE) files_DATA = \ +module.eap \ module_icon.png \ menu_icon_close.png \ menu_icon_dark.png \ diff --git a/src/modules/dropshadow/module.eap b/src/modules/dropshadow/module.eap new file mode 100644 index 0000000000000000000000000000000000000000..a696281969682d3e765072dcdf0f50233fa34ffa GIT binary patch literal 4884 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 Hjs*M*I4anG literal 0 HcmV?d00001 diff --git a/src/modules/dropshadow/module_icon.png b/src/modules/dropshadow/module_icon.png index a8451b2ba9feac2a208a8486effe276298a7bf77..1e811c4144b4751968b2db249db0e8c1ced76fb8 100644 GIT binary patch delta 1756 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 LMNS1ou0mjf(3A&M diff --git a/src/modules/ibox/module.eap b/src/modules/ibox/module.eap index 1396ffd62f1bd3a0bd6385bab1b0edfd58d9ed87..3ec32172c008743eda0724fa1eae422c53575ba4 100644 GIT binary patch delta 13 UcmZqBYtWnUgDJma<1aQb04Jpdl>h($ delta 13 UcmZqBYtWnUgDJ6S<1aQb04FmAfdBvi