diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-08-11 10:44:04 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-08-22 16:27:03 +0200 |
commit | c693a3a5061b67ad63faf7ae76be98ea7eb5cda8 (patch) | |
tree | 8a5313689f94b37c1604b15c61ddb0b0083e0c8a /c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c | |
parent | bsp/qoriq: 64-bit MMU support (diff) | |
download | rtems-c693a3a5061b67ad63faf7ae76be98ea7eb5cda8.tar.bz2 |
powerpc: PPC64_NOP_FOR_LINKER_TOC_POINTER_RESTORE
In 64-bit mode, the linker must have the ability to restore the TOC
pointer after an external function call.
Update #3082.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c')
-rw-r--r-- | c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c b/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c index 58f930ee22..6ad73c301a 100644 --- a/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c +++ b/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c @@ -113,10 +113,16 @@ static void initialize_frequency_parameters(void) #define MTIVPR(base) \ __asm__ volatile ("mtivpr %0" : : "r" (base)) +#ifdef __powerpc64__ +#define VECTOR_TABLE_ENTRY_SIZE 32 +#else +#define VECTOR_TABLE_ENTRY_SIZE 16 +#endif + #define MTIVOR(vec, offset) \ do { \ __asm__ volatile ("mtspr " RTEMS_XSTRING(vec) ", %0" : : "r" (offset)); \ - offset += 16; \ + offset += VECTOR_TABLE_ENTRY_SIZE; \ } while (0) void qoriq_initialize_exceptions(void *interrupt_stack_begin) |