[parisc-linux] [PATCH 08/23] [PARISC] Use MFIA in current_text_addr on pa2.0 processors

Kyle McMartin kyle at parisc-linux.org
Sun Jun 25 17:34:36 MDT 2006


Signed-off-by: Kyle McMartin <kyle at parisc-linux.org>

---

 include/asm-parisc/processor.h |   14 ++++++--------
 1 files changed, 6 insertions(+), 8 deletions(-)

1eef5b4e7968d8ec82f6dd60e3ee94ca38b43902
diff --git a/include/asm-parisc/processor.h b/include/asm-parisc/processor.h
index ca49dc9..b73626f 100644
--- a/include/asm-parisc/processor.h
+++ b/include/asm-parisc/processor.h
@@ -26,14 +26,12 @@ #define KERNEL_STACK_SIZE 	(4*PAGE_SIZE)
  * Default implementation of macro that returns current
  * instruction pointer ("program counter").
  */
-
-/* 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; })
+#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; })
 
 #define TASK_SIZE               (current->thread.task_size)
 #define TASK_UNMAPPED_BASE      (current->thread.map_base)
-- 
1.3.3




More information about the parisc-linux mailing list