tramp.S (trampoline_setup): Use a longcall sequence in the non pic case on VxWorks.
libgcc/ * config/rs6000/vxworks/tramp.S (trampoline_setup): Use a longcall sequence in the non pic case on VxWorks. From-SVN: r187871
This commit is contained in:
parent
489381473d
commit
c57685107c
2 changed files with 17 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2012-05-25 Olivier Hainque <hainque@adacore.com>
|
||||
|
||||
* config/rs6000/vxworks/tramp.S (trampoline_setup): Use a longcall
|
||||
sequence in the non pic case on VxWorks.
|
||||
|
||||
2012-05-24 Olivier Hainque <hainque@adacore.com>
|
||||
|
||||
* Makefile.in: Move dependency on install-unwind_h from
|
||||
|
|
|
@ -95,6 +95,16 @@ FUNC_START(__trampoline_setup)
|
|||
blr
|
||||
|
||||
.Labort:
|
||||
/* Use a longcall sequence in the non PIC case on VxWorks, to prevent
|
||||
possible relocation errors if this is module-loaded very far away from
|
||||
the 'abort' entry point. */
|
||||
#if defined (__VXWORKS__) && ! (defined __PIC__ || defined __pic__)
|
||||
lis r11,JUMP_TARGET(abort)@ha
|
||||
addic r11,r11,JUMP_TARGET(abort)@l
|
||||
mtlr r11
|
||||
blrl
|
||||
#else
|
||||
|
||||
#if (defined __PIC__ || defined __pic__) && defined HAVE_AS_REL16
|
||||
bcl 20,31,1f
|
||||
1: mflr r30
|
||||
|
@ -105,3 +115,5 @@ FUNC_START(__trampoline_setup)
|
|||
FUNC_END(__trampoline_setup)
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue