Module Name: src
Committed By: matt
Date: Thu Aug 15 22:37:29 UTC 2013
Modified Files:
src/lib/libpthread/arch/arm: pthread_md.h
Log Message:
Use the thumb1 versions of sev/wfe for thumb && armv6+.
if using armv5t don't do anything for thumb.
To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libpthread/arch/arm/pthread_md.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libpthread/arch/arm/pthread_md.h
diff -u src/lib/libpthread/arch/arm/pthread_md.h:1.8 src/lib/libpthread/arch/arm/pthread_md.h:1.9
--- src/lib/libpthread/arch/arm/pthread_md.h:1.8 Wed Sep 19 07:57:14 2012
+++ src/lib/libpthread/arch/arm/pthread_md.h Thu Aug 15 22:37:29 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: pthread_md.h,v 1.8 2012/09/19 07:57:14 matt Exp $ */
+/* $NetBSD: pthread_md.h,v 1.9 2013/08/15 22:37:29 matt Exp $ */
/*
* Copyright (c) 2001 Wasabi Systems, Inc.
@@ -49,8 +49,16 @@ pthread__sp(void)
return (ret);
}
+#if defined(__thumb__) && defined(_ARM_ARCH_6)
+#define pthread__smt_pause() __asm __volatile(".inst.n 0xbf20") /* wfe */
+#define pthread__smt_wake() __asm __volatile(".inst.n 0xbf40") /* sev */
+#elif !defined(__thumb__)
#define pthread__smt_pause() __asm __volatile(".inst 0xe320f002") /* wfe */
#define pthread__smt_wake() __asm __volatile(".inst 0xe320f004") /* sev */
+#else
+#define pthread__smt_pause()
+#define pthread__smt_wake()
+#endif
#define pthread__uc_sp(ucp) ((ucp)->uc_mcontext.__gregs[_REG_SP])