Hello,
I have attached my implementation of a memory fence on MIPS. Unfortunately, I
have been unable to test it extensively, since I only have access to MIPS-based
SoCs that are single core, but I have based it on the MIPS32 architecture
manual (
http://mips.com/products/architectures/mips32/#specifications ), and the code
is consistent with what is generated by GCC. Actually, it is the same for
MIPS64.
Would you, please, merge it into the libev source code?
Yours faithfully,
Anton Kirilov
--- ev.c.orig 2012-02-21 06:34:02.000000000 +0200
+++ ev.c 2012-02-21 17:42:30.814975031 +0200
@@ -579,6 +579,8 @@
#define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("membar
#LoadStore | #StoreStore")
#elif defined(__s390__) || defined(__s390x__)
#define ECB_MEMORY_FENCE __asm__ __volatile__ ("bcr 15,0" : : :
"memory")
+ #elif defined(__mips)
+ #define ECB_MEMORY_FENCE __asm__ __volatile__ ("sync" : : :
"memory")
#endif
#endif
#endif
_______________________________________________
libev mailing list
[email protected]
http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev