… | |
… | |
627 | #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("membar #LoadStore | #LoadLoad" : : : "memory") |
627 | #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("membar #LoadStore | #LoadLoad" : : : "memory") |
628 | #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("membar #LoadStore | #StoreStore") |
628 | #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("membar #LoadStore | #StoreStore") |
629 | #elif defined __s390__ || defined __s390x__ |
629 | #elif defined __s390__ || defined __s390x__ |
630 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("bcr 15,0" : : : "memory") |
630 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("bcr 15,0" : : : "memory") |
631 | #elif defined __mips__ |
631 | #elif defined __mips__ |
|
|
632 | /* GNU/Linux emulates sync on mips1 architectures, so we force it's use */ |
|
|
633 | /* anybody else who still uses mips1 is supposed to send in their version, with detection code. */ |
632 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("sync" : : : "memory") |
634 | #define ECB_MEMORY_FENCE __asm__ __volatile__ (".set mips2; sync; .set mips0" : : : "memory") |
633 | #elif defined __alpha__ |
635 | #elif defined __alpha__ |
634 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mb" : : : "memory") |
636 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mb" : : : "memory") |
635 | #elif defined __hppa__ |
637 | #elif defined __hppa__ |
636 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("" : : : "memory") |
638 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("" : : : "memory") |
637 | #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("") |
639 | #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("") |
638 | #elif defined __ia64__ |
640 | #elif defined __ia64__ |
639 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mf" : : : "memory") |
641 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mf" : : : "memory") |
|
|
642 | #elif defined __m68k__ |
|
|
643 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("" : : : "memory") |
|
|
644 | #elif defined __m88k__ |
|
|
645 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("tb1 0,%%r0,128" : : : "memory") |
|
|
646 | #elif defined __sh__ |
|
|
647 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("" : : : "memory") |
640 | #endif |
648 | #endif |
641 | #endif |
649 | #endif |
642 | #endif |
650 | #endif |
643 | |
651 | |
644 | #ifndef ECB_MEMORY_FENCE |
652 | #ifndef ECB_MEMORY_FENCE |
… | |
… | |
1051 | || defined __s390__ || defined __s390x__ \ |
1059 | || defined __s390__ || defined __s390x__ \ |
1052 | || defined __mips__ \ |
1060 | || defined __mips__ \ |
1053 | || defined __alpha__ \ |
1061 | || defined __alpha__ \ |
1054 | || defined __hppa__ \ |
1062 | || defined __hppa__ \ |
1055 | || defined __ia64__ \ |
1063 | || defined __ia64__ \ |
|
|
1064 | || defined __m68k__ \ |
|
|
1065 | || defined __m88k__ \ |
|
|
1066 | || defined __sh__ \ |
1056 | || defined _M_IX86 || defined _M_AMD64 || defined _M_IA64 |
1067 | || defined _M_IX86 || defined _M_AMD64 || defined _M_IA64 |
1057 | #define ECB_STDFP 1 |
1068 | #define ECB_STDFP 1 |
1058 | #include <string.h> /* for memcpy */ |
1069 | #include <string.h> /* for memcpy */ |
1059 | #else |
1070 | #else |
1060 | #define ECB_STDFP 0 |
1071 | #define ECB_STDFP 0 |