aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/darwin.h
diff options
context:
space:
mode:
authorIain Sandoe <iains@gcc.gnu.org>2010-07-19 09:11:12 +0000
committerIain Sandoe <iains@gcc.gnu.org>2010-07-19 09:11:12 +0000
commit9005471b8382cc019ccd189b51ef7422027735f7 (patch)
treed05b69bd4499cd79c964ff9f989bf6e6b5f94c44 /gcc/config/rs6000/darwin.h
parent39354b3b991ec0b77d9137c64eea9551ff0ec6f7 (diff)
downloadgcc-9005471b8382cc019ccd189b51ef7422027735f7.zip
gcc-9005471b8382cc019ccd189b51ef7422027735f7.tar.gz
gcc-9005471b8382cc019ccd189b51ef7422027735f7.tar.bz2
allow darwin branch island control depening on system version
* config/i386/darwin.h: Define darwin_emit_branch_islands. (TARGET_MACHO_BRANCH_ISLANDS): New. (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS. * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a default value. * config/i386/i386.c (output_pic_addr_const): Do not emit branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set. (x86_output_mi_thunk): Adjust symbol creation. * config/rs6000/darwin.h: Define darwin_emit_branch_islands. Remove out of date comment. * config/rs6000/rs6000.c (print_operand): Adjust symbol. DARWIN_LINKER_GENERATES_ISLANDS: Remove. DARWIN_GENERATE_ISLANDS: Ditto. (output_call): Do not emit branch islands unless darwin_emit_branch_islands is set. * config/darwin.c: Declare darwin_emit_branch_islands. (machopic_indirect_data_reference): Do not emit unless darwin_emit_branch_islands is set. (darwin_override_options): Set darwin_emit_branch_islands where it is needed. * config/darwin9.h DARWIN_LINKER_GENERATES_ISLANDS: Remove. From-SVN: r162299
Diffstat (limited to 'gcc/config/rs6000/darwin.h')
-rw-r--r--gcc/config/rs6000/darwin.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h
index 98d44cf..810563e 100644
--- a/gcc/config/rs6000/darwin.h
+++ b/gcc/config/rs6000/darwin.h
@@ -65,6 +65,9 @@
} \
while (0)
+/* Generate branch islands stubs if this is true. */
+extern int darwin_emit_branch_islands;
+
#define SUBTARGET_OVERRIDE_OPTIONS darwin_rs6000_override_options ()
#define C_COMMON_OVERRIDE_OPTIONS do { \
@@ -385,8 +388,6 @@
#define BLOCK_REG_PADDING(MODE, TYPE, FIRST) \
(!(FIRST) ? upward : FUNCTION_ARG_PADDING (MODE, TYPE))
-/* XXX: Darwin supports neither .quad, or .llong, but it also doesn't
- support 64 bit PowerPC either, so this just keeps things happy. */
#define DOUBLE_INT_ASM_OP "\t.quad\t"
/* For binary compatibility with 2.95; Darwin C APIs use bool from