
Here is the -msingle-pic-base patch to gcc in case anyone wants to try it.
Jocke
From b418def9575d6ea3698077888157ae52631e52f3 Mon Sep 17 00:00:00 2001
From: Joakim Tjernlund Joakim.Tjernlund@transmode.se Date: Sat, 9 Oct 2010 12:45:39 +0200 Subject: [PATCH] PowerPC: Add msingle-pic-base option.
Do not generate PIC prolougue. Only works with -fpic. I don't think one can make -fPIC work too.
--- rs6000.c | 4 ++++ rs6000.opt | 4 ++++ 2 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 5e6f301..71d095d 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -16721,6 +16721,9 @@ insn = emit_insn (generate_set_vrsave (reg, info, 0)); }
+ if (TARGET_SINGLE_PIC_BASE) + return; /* Do not set PIC register */ + /* If we are using RS6000_PIC_OFFSET_TABLE_REGNUM, we need to set it up. */ if ((TARGET_TOC && TARGET_MINIMAL_TOC && get_pool_size () != 0) || (DEFAULT_ABI == ABI_V4 diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt index 8a62352..5f6e6ca 100644 --- a/gcc/config/rs6000/rs6000.opt +++ b/gcc/config/rs6000/rs6000.opt @@ -103,6 +103,10 @@ mold-mnemonics Target Report RejectNegative InverseMask(NEW_MNEMONICS) Use old mnemonics for PowerPC architecture
+msingle-pic-base +Target Report Mask(SINGLE_PIC_BASE) +Do not load the PIC register in function prologues + msoft-float Target Report RejectNegative Mask(SOFT_FLOAT) Do not use hardware floating point