summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-07-31 15:10:33 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-08-22 16:27:02 +0200
commitc6994af7a7a1ba9afb0403d9e0785a905edab6ee (patch)
tree68b736241f46a864976ea6c97d2cec342b7f3cdf /c/src/lib/libcpu
parentbsps/powerpc: Add 64-bit CRT init/fini support (diff)
downloadrtems-c6994af7a7a1ba9afb0403d9e0785a905edab6ee.tar.bz2
bsp/qoriq: Use LA to load an address
Add 64-bit support for LA. Update #3082.
Diffstat (limited to 'c/src/lib/libcpu')
-rw-r--r--c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h b/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h
index ea063d5ff1..4d6af38485 100644
--- a/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h
+++ b/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h
@@ -869,8 +869,16 @@ void ShowBATS(void);
#include <rtems/asm.h>
.macro LA reg, addr
+#if defined(__powerpc64__)
+ lis \reg, (\addr)@highest
+ ori \reg, \reg, (\addr)@higher
+ rldicr \reg, \reg, 32, 31
+ oris \reg, \reg, (\addr)@h
+ ori \reg, \reg, (\addr)@l
+#else
lis \reg, (\addr)@h
ori \reg, \reg, (\addr)@l
+#endif
.endm
.macro LA32 reg, addr