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/libcpu/powerpc/new-exceptions | |
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/libcpu/powerpc/new-exceptions')
-rw-r--r-- | c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_async_normal.S | 3 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_fatal.S | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_async_normal.S b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_async_normal.S index d40e5cd48e..5b2a1b48e0 100644 --- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_async_normal.S +++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_async_normal.S @@ -278,6 +278,7 @@ ppc_exc_interrupt: #else /* PPC_EXC_CONFIG_USE_FIXED_HANDLER */ /* Call fixed high level handler */ bl bsp_interrupt_dispatch + PPC64_NOP_FOR_LINKER_TOC_POINTER_RESTORE #endif /* PPC_EXC_CONFIG_USE_FIXED_HANDLER */ #ifdef RTEMS_PROFILING @@ -287,6 +288,7 @@ ppc_exc_interrupt: lwz r4, PPC_EXC_INTERRUPT_ENTRY_INSTANT_OFFSET(FRAME_REGISTER) GET_TIME_BASE r5 bl _Profiling_Outer_most_interrupt_entry_and_exit + PPC64_NOP_FOR_LINKER_TOC_POINTER_RESTORE .Lprofiling_done: #endif /* RTEMS_PROFILING */ @@ -334,6 +336,7 @@ ppc_exc_interrupt: mfmsr r4 ori r4, r4, MSR_EE bl _Thread_Do_dispatch + PPC64_NOP_FOR_LINKER_TOC_POINTER_RESTORE /* Disable interrupts */ wrteei 0 diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_fatal.S b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_fatal.S index 0bfba57352..1cb97e350a 100644 --- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_fatal.S +++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_fatal.S @@ -226,3 +226,4 @@ ppc_exc_fatal_normal: li r3, 9 addi r4, r1, FRAME_LINK_SPACE b _Terminate + PPC64_NOP_FOR_LINKER_TOC_POINTER_RESTORE |