diff options
Diffstat (limited to 'arch/arm/include')
-rw-r--r-- | arch/arm/include/asm/common.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/arm/include/asm/common.h b/arch/arm/include/asm/common.h index 07ae619cea..97bfdc43f5 100644 --- a/arch/arm/include/asm/common.h +++ b/arch/arm/include/asm/common.h @@ -4,13 +4,19 @@ static inline unsigned long get_pc(void) { unsigned long pc; - +#ifdef CONFIG_CPU_32 __asm__ __volatile__( "mov %0, pc\n" : "=r" (pc) : : "memory"); - +#else + __asm__ __volatile__( + "adr %0, .\n" + : "=r" (pc) + : + : "memory"); +#endif return pc; } |