diff --git a/arch/ppc/include/asm/common.h b/arch/ppc/include/asm/common.h index 96de5c656..26876c748 100644 --- a/arch/ppc/include/asm/common.h +++ b/arch/ppc/include/asm/common.h @@ -21,4 +21,21 @@ void trap_init (ulong); int cpu_init_board_data(bd_t *bd); int init_board_data(bd_t *bd); +static inline unsigned long get_pc(void) +{ + unsigned long pc; + + __asm__ __volatile__( + " mflr 0\n" + " bl 1f\n" + "1:\n" + " mflr %0\n" + " mtlr 0\n" + : "=r" (pc) + : + : "0", "memory"); + + return pc; +} + #endif /* __ASM_COMMON_H */