]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/m68k/include/asm/processor.h
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / arch / m68k / include / asm / processor.h
index 7a6a7590cc02cd584d28fd9e2a98d9d1b8b30797..278c69bad57a8369a542851df92571cdcf988447 100644 (file)
 
 static inline unsigned long rdusp(void)
 {
-#ifdef CONFIG_COLDFIRE
+#ifdef CONFIG_COLDFIRE_SW_A7
        extern unsigned int sw_usp;
        return sw_usp;
 #else
-       unsigned long usp;
-       __asm__ __volatile__("move %/usp,%0" : "=a" (usp));
+       register unsigned long usp __asm__("a0");
+       /* move %usp,%a0 */
+       __asm__ __volatile__(".word 0x4e68" : "=a" (usp));
        return usp;
 #endif
 }
 
 static inline void wrusp(unsigned long usp)
 {
-#ifdef CONFIG_COLDFIRE
+#ifdef CONFIG_COLDFIRE_SW_A7
        extern unsigned int sw_usp;
        sw_usp = usp;
 #else
-       __asm__ __volatile__("move %0,%/usp" : : "a" (usp));
+       register unsigned long a0 __asm__("a0") = usp;
+       /* move %a0,%usp */
+       __asm__ __volatile__(".word 0x4e60" : : "a" (a0) );
 #endif
 }