arm.h (NEED_PLT_GOT): Fix mistake in last change.
* arm.h (NEED_PLT_GOT): Fix mistake in last change. (GOT_PCREL): New macro. Define to 1 if not already defined. * arm/elf.h (GOT_PCREL): Define to 0. * arm.c (arm_finalize_pic): Take into account the setting of GOT_PCREL. From-SVN: r27155
This commit is contained in:
parent
21fa39fe92
commit
02c4baf3cb
|
@ -1,3 +1,11 @@
|
|||
Wed May 26 02:19:31 1999 Philip Blundell <pb@nexus.co.uk>
|
||||
|
||||
* arm.h (NEED_PLT_GOT): Fix mistake in last change.
|
||||
(GOT_PCREL): New macro. Define to 1 if not already defined.
|
||||
* arm/elf.h (GOT_PCREL): Define to 0.
|
||||
* arm.c (arm_finalize_pic): Take into account the setting of
|
||||
GOT_PCREL.
|
||||
|
||||
Tue May 25 14:06:06 1999 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* output.h (STRIP_NAME_ENCODING): Provide default definition.
|
||||
|
|
|
@ -1563,8 +1563,11 @@ arm_finalize_pic ()
|
|||
/* On the ARM the PC register contains 'dot + 8' at the time of the
|
||||
addition. */
|
||||
pic_tmp = plus_constant (gen_rtx_LABEL_REF (Pmode, l1), 8);
|
||||
pic_tmp2 = gen_rtx_CONST (VOIDmode,
|
||||
if (GOT_PCREL)
|
||||
pic_tmp2 = gen_rtx_CONST (VOIDmode,
|
||||
gen_rtx_PLUS (Pmode, global_offset_table, pc_rtx));
|
||||
else
|
||||
pic_tmp2 = gen_rtx_CONST (VOIDmode, global_offset_table);
|
||||
|
||||
pic_rtx = gen_rtx_CONST (Pmode, gen_rtx_MINUS (Pmode, pic_tmp2, pic_tmp));
|
||||
|
||||
|
|
|
@ -480,7 +480,25 @@ extern int arm_is_6_or_7;
|
|||
/* Nonzero if PIC code requires explicit qualifiers to generate
|
||||
PLT and GOT relocs rather than the assembler doing so implicitly.
|
||||
Subtargets can override this if required. */
|
||||
#ifndef NEED_PLT_GOT
|
||||
#define NEED_PLT_GOT 0
|
||||
#endif
|
||||
|
||||
/* Nonzero if we need to refer to the GOT with a PC-relative
|
||||
offset. In other words, generate
|
||||
|
||||
.word _GLOBAL_OFFSET_TABLE_ - [. - (.Lxx + 8)]
|
||||
|
||||
rather than
|
||||
|
||||
.word _GLOBAL_OFFSET_TABLE_ - (.Lxx + 8)
|
||||
|
||||
The default is true, which matches NetBSD. Subtargets can
|
||||
override this if required. */
|
||||
#ifndef GOT_PCREL
|
||||
#define GOT_PCREL 1
|
||||
#endif
|
||||
|
||||
|
||||
/* Target machine storage Layout. */
|
||||
|
||||
|
|
|
@ -338,4 +338,7 @@ do { \
|
|||
/* For PIC code we need to explicitly specify (PLT) and (GOT) relocs. */
|
||||
#define NEED_PLT_GOT flag_pic
|
||||
|
||||
/* The ELF assembler handles GOT addressing differently to NetBSD. */
|
||||
#define GOT_PCREL 0
|
||||
|
||||
#include "arm/aout.h"
|
||||
|
|
Loading…
Reference in New Issue