summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn van Groningen2013-06-25 10:55:11 +0000
committerJohn van Groningen2013-06-25 10:55:11 +0000
commitec64d2edb27775793c997bd8f6620fd8c684c948 (patch)
tree1f1b6b155b7991a8e1206cde86315c6f27878acf
parentuse pc relative lea instruction for eval_upd_.. on 64 bit linux (diff)
use lea to load a descriptor instead of P_DESCRIPTOR_NUMBER when generating position independent code on 64 bit linux
-rw-r--r--cglin.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/cglin.c b/cglin.c
index 5533840..bcfeca8 100644
--- a/cglin.c
+++ b/cglin.c
@@ -8907,10 +8907,14 @@ static void linearize_graph (INSTRUCTION_GRAPH graph,ADDRESS *ad_p)
return;
case GLEA:
{
- register int reg_1;
+ int reg_1;
#if defined (I486) && !defined (MACH_O64)
- if (graph->node_count==1){
+ if (graph->node_count==1
+# if defined (G_AI64) && defined (LINUX)
+ && !pic_flag
+# endif
+ ){
ad_p->ad_mode=P_DESCRIPTOR_NUMBER;
if (graph->inode_arity==1)
ad_p->ad_offset=graph->instruction_parameters[1].i;