linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / include / asm-parisc / processor.h
index b73626f..89f2f1c 100644 (file)
@@ -9,6 +9,7 @@
 #define __ASM_PARISC_PROCESSOR_H
 
 #ifndef __ASSEMBLY__
+#include <linux/config.h>
 #include <linux/threads.h>
 #include <linux/spinlock_types.h>
 
  * Default implementation of macro that returns current
  * instruction pointer ("program counter").
  */
-#ifdef CONFIG_PA20
-#define current_ia(x)  __asm__("mfia %0" : "=r"(x))
-#else /* mfia added in pa2.0 */
-#define current_ia(x)  __asm__("blr 0,%0\n\tnop" : "=r"(x))
-#endif
-#define current_text_addr() ({ void *pc; current_ia(pc); pc; })
+
+/* We cannot use MFIA as it was added for PA2.0 - prumpf
+
+   At one point there were no "0f/0b" type local symbols in gas for
+   PA-RISC.  This is no longer true, but this still seems like the
+   nicest way to implement this. */
+
+#define current_text_addr() ({ void *pc; __asm__("\n\tblr 0,%0\n\tnop":"=r" (pc)); pc; })
 
 #define TASK_SIZE               (current->thread.task_size)
 #define TASK_UNMAPPED_BASE      (current->thread.map_base)