forked from enlightenment/efl
build with amd64 asm (needs to be manually enabled though right now)
minor list cleanups :) SVN revision: 14122
This commit is contained in:
parent
be1463e339
commit
01db63e145
|
@ -17,7 +17,7 @@ evas_object_list_append(void *in_list, void *in_item)
|
||||||
return new_l;
|
return new_l;
|
||||||
}
|
}
|
||||||
if (list->last) l = list->last;
|
if (list->last) l = list->last;
|
||||||
else for (l = list; l; l = l->next);
|
else for (l = list; (l) && (l->next); l = l->next);
|
||||||
l->next = new_l;
|
l->next = new_l;
|
||||||
new_l->prev = l;
|
new_l->prev = l;
|
||||||
list->last = new_l;
|
list->last = new_l;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "evas_common.h"
|
#include "evas_common.h"
|
||||||
|
|
||||||
#ifdef BUILD_MMX
|
#if defined BUILD_MMX || defined BUILD_SSE
|
||||||
#include "evas_mmx.h"
|
#include "evas_mmx.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "evas_common.h"
|
#include "evas_common.h"
|
||||||
|
|
||||||
#ifdef BUILD_MMX
|
#if defined BUILD_MMX || defined BUILD_SSE
|
||||||
#include "evas_mmx.h"
|
#include "evas_mmx.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "evas_common.h"
|
#include "evas_common.h"
|
||||||
|
|
||||||
#ifdef BUILD_MMX
|
#if defined BUILD_MMX || defined BUILD_SSE
|
||||||
#include "evas_mmx.h"
|
#include "evas_mmx.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -528,6 +528,46 @@ typedef union {
|
||||||
#define CPUID_SSE (1 << 25) /* flags: xmm */
|
#define CPUID_SSE (1 << 25) /* flags: xmm */
|
||||||
#define CPUID_SSE2 (1 << 26) /* flags: ? */
|
#define CPUID_SSE2 (1 << 26) /* flags: ? */
|
||||||
|
|
||||||
|
#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) \
|
||||||
|
);
|
||||||
|
|
||||||
|
#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) \
|
||||||
|
);
|
||||||
|
#else
|
||||||
#define have_cpuid(cpuid_ret) \
|
#define have_cpuid(cpuid_ret) \
|
||||||
__asm__ __volatile__ ( \
|
__asm__ __volatile__ ( \
|
||||||
".align 32 \n" \
|
".align 32 \n" \
|
||||||
|
@ -566,6 +606,8 @@ typedef union {
|
||||||
" popl %%eax \n" \
|
" popl %%eax \n" \
|
||||||
: "=m" (cpuid_ret) \
|
: "=m" (cpuid_ret) \
|
||||||
);
|
);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* P3 instructions - need to figure how to detect? */
|
/* P3 instructions - need to figure how to detect? */
|
||||||
#define prefetch(var) \
|
#define prefetch(var) \
|
||||||
__asm__ __volatile__ ( \
|
__asm__ __volatile__ ( \
|
||||||
|
|
Loading…
Reference in New Issue