| @@ -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. */ |