Fri Jan 7 02:53:19 2011 UTC ()
Enable 8540 (E500) support.
Define _SOFT_FLOAT if -msoft-float is used.


(matt)
diff -r1.3 -r1.3.36.1 src/gnu/dist/gcc4/gcc/config/rs6000/netbsd.h

cvs diff -r1.3 -r1.3.36.1 src/gnu/dist/gcc4/gcc/config/rs6000/Attic/netbsd.h (expand / switch to unified diff)

--- src/gnu/dist/gcc4/gcc/config/rs6000/Attic/netbsd.h 2006/05/13 10:38:33 1.3
+++ src/gnu/dist/gcc4/gcc/config/rs6000/Attic/netbsd.h 2011/01/07 02:53:19 1.3.36.1
@@ -34,26 +34,28 @@ @@ -34,26 +34,28 @@
34 || (CHAR) == 'h' \ 34 || (CHAR) == 'h' \
35 || (CHAR) == 'z' \ 35 || (CHAR) == 'z' \
36 || (CHAR) == 'R' \ 36 || (CHAR) == 'R' \
37 || (CHAR) == 'G') 37 || (CHAR) == 'G')
38 38
39#undef TARGET_OS_CPP_BUILTINS /* FIXME: sysv4.h should not define this! */ 39#undef TARGET_OS_CPP_BUILTINS /* FIXME: sysv4.h should not define this! */
40#define TARGET_OS_CPP_BUILTINS() \ 40#define TARGET_OS_CPP_BUILTINS() \
41 do \ 41 do \
42 { \ 42 { \
43 NETBSD_OS_CPP_BUILTINS_ELF(); \ 43 NETBSD_OS_CPP_BUILTINS_ELF(); \
44 builtin_define ("__powerpc__"); \ 44 builtin_define ("__powerpc__"); \
45 builtin_assert ("cpu=powerpc"); \ 45 builtin_assert ("cpu=powerpc"); \
46 builtin_assert ("machine=powerpc"); \ 46 builtin_assert ("machine=powerpc"); \
 47 if (TARGET_SOFT_FLOAT) \
 48 builtin_define ("_SOFT_FLOAT"); \
47 } \ 49 } \
48 while (0) 50 while (0)
49 51
50/* Override the default from rs6000.h to avoid conflicts with macros 52/* Override the default from rs6000.h to avoid conflicts with macros
51 defined in NetBSD header files. */ 53 defined in NetBSD header files. */
52 54
53#undef RS6000_CPU_CPP_ENDIAN_BUILTINS 55#undef RS6000_CPU_CPP_ENDIAN_BUILTINS
54#define RS6000_CPU_CPP_ENDIAN_BUILTINS() \ 56#define RS6000_CPU_CPP_ENDIAN_BUILTINS() \
55 do \ 57 do \
56 { \ 58 { \
57 if (BYTES_BIG_ENDIAN) \ 59 if (BYTES_BIG_ENDIAN) \
58 { \ 60 { \
59 builtin_define ("__BIG_ENDIAN__"); \ 61 builtin_define ("__BIG_ENDIAN__"); \
@@ -111,26 +113,33 @@ @@ -111,26 +113,33 @@
111 113
112#undef SUBTARGET_EXTRA_SPECS 114#undef SUBTARGET_EXTRA_SPECS
113#define SUBTARGET_EXTRA_SPECS \ 115#define SUBTARGET_EXTRA_SPECS \
114 { "netbsd_link_spec", NETBSD_LINK_SPEC_ELF }, \ 116 { "netbsd_link_spec", NETBSD_LINK_SPEC_ELF }, \
115 { "netbsd_entry_point", NETBSD_ENTRY_POINT }, \ 117 { "netbsd_entry_point", NETBSD_ENTRY_POINT }, \
116 { "netbsd_endfile_spec", NETBSD_ENDFILE_SPEC }, 118 { "netbsd_endfile_spec", NETBSD_ENDFILE_SPEC },
117 119
118/* 120/*
119 * Add NetBSD specific defaults: -mpowerpc -mnew_mnemonics -mstrict-align 121 * Add NetBSD specific defaults: -mpowerpc -mnew_mnemonics -mstrict-align
120 */ 122 */
121#undef TARGET_DEFAULT 123#undef TARGET_DEFAULT
122#define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS | MASK_STRICT_ALIGN) 124#define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS | MASK_STRICT_ALIGN)
123 125
 126#undef TARGET_E500
 127#undef TARGET_E500_SINGLE
 128#undef TARGET_E500_DOUBLE
 129#define TARGET_E500 (rs6000_cpu == PROCESSOR_PPC8540)
 130#define TARGET_E500_SINGLE (TARGET_HARD_FLOAT && rs6000_float_gprs == 1)
 131#define TARGET_E500_DOUBLE (TARGET_HARD_FLOAT && rs6000_float_gprs == 2)
 132
124/* Attempt to enable execute permissions on the stack. */ 133/* Attempt to enable execute permissions on the stack. */
125#define TRANSFER_FROM_TRAMPOLINE NETBSD_ENABLE_EXECUTE_STACK 134#define TRANSFER_FROM_TRAMPOLINE NETBSD_ENABLE_EXECUTE_STACK
126#ifdef L_trampoline 135#ifdef L_trampoline
127#undef TRAMPOLINE_SIZE 136#undef TRAMPOLINE_SIZE
128#define TRAMPOLINE_SIZE 48 137#define TRAMPOLINE_SIZE 48
129#endif 138#endif
130 139
131/* Make sure _enable_execute_stack() isn't the empty function in libgcc2.c. 140/* Make sure _enable_execute_stack() isn't the empty function in libgcc2.c.
132 It gets defined in _trampoline.o via NETBSD_ENABLE_EXECUTE_STACK. */ 141 It gets defined in _trampoline.o via NETBSD_ENABLE_EXECUTE_STACK. */
133#undef ENABLE_EXECUTE_STACK 142#undef ENABLE_EXECUTE_STACK
134#define ENABLE_EXECUTE_STACK 143#define ENABLE_EXECUTE_STACK
135 144
136/* Override STACK_BOUNDARY to use Altivec compliant one. */ 145/* Override STACK_BOUNDARY to use Altivec compliant one. */