diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2018-03-07 09:05:29 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-03-21 12:23:02 +0100 |
commit | f98ecf9159fc136ead07b25a28fd4b4ad4f1c0c0 (patch) | |
tree | 9d516f6caead64e62145c21451bce8eb97745418 /arch/arm/include | |
parent | 07172d63f31109c89012ddf0c5470c57c65c38a6 (diff) | |
download | barebox-f98ecf9159fc136ead07b25a28fd4b4ad4f1c0c0.tar.gz barebox-f98ecf9159fc136ead07b25a28fd4b4ad4f1c0c0.tar.xz |
ARM: aarch64: implement get_pc()
The arm32 version can't be used on aarch64, implement an aarch64
specific version.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
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; } |