OLD | NEW |
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. |
2 // All Rights Reserved. | 2 // All Rights Reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions | 5 // modification, are permitted provided that the following conditions |
6 // are met: | 6 // are met: |
7 // | 7 // |
8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, |
9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. |
10 // | 10 // |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 | 122 |
123 if (FLAG_enable_32dregs && cpu.has_vfp3_d32()) supported_ |= 1u << VFP32DREGS; | 123 if (FLAG_enable_32dregs && cpu.has_vfp3_d32()) supported_ |= 1u << VFP32DREGS; |
124 #endif | 124 #endif |
125 | 125 |
126 ASSERT(!IsSupported(VFP3) || IsSupported(ARMv7)); | 126 ASSERT(!IsSupported(VFP3) || IsSupported(ARMv7)); |
127 } | 127 } |
128 | 128 |
129 | 129 |
130 void CpuFeatures::PrintTarget() { | 130 void CpuFeatures::PrintTarget() { |
131 const char* arm_arch = NULL; | 131 const char* arm_arch = NULL; |
132 const char* arm_test = ""; | 132 const char* arm_target_type = ""; |
| 133 const char* arm_no_probe = ""; |
133 const char* arm_fpu = ""; | 134 const char* arm_fpu = ""; |
134 const char* arm_thumb = ""; | 135 const char* arm_thumb = ""; |
135 const char* arm_float_abi = NULL; | 136 const char* arm_float_abi = NULL; |
136 | 137 |
| 138 #if !defined __arm__ |
| 139 arm_target_type = " simulator"; |
| 140 #endif |
| 141 |
| 142 #if defined ARM_TEST_NO_FEATURE_PROBE |
| 143 arm_no_probe = " noprobe"; |
| 144 #endif |
| 145 |
137 #if defined CAN_USE_ARMV7_INSTRUCTIONS | 146 #if defined CAN_USE_ARMV7_INSTRUCTIONS |
138 arm_arch = "arm v7"; | 147 arm_arch = "arm v7"; |
139 #else | 148 #else |
140 arm_arch = "arm v6"; | 149 arm_arch = "arm v6"; |
141 #endif | 150 #endif |
142 | 151 |
143 #ifdef __arm__ | 152 #if defined CAN_USE_NEON |
144 | |
145 # ifdef ARM_TEST | |
146 arm_test = " test"; | |
147 # endif | |
148 # if defined __ARM_NEON__ | |
149 arm_fpu = " neon"; | 153 arm_fpu = " neon"; |
150 # elif defined CAN_USE_VFP3_INSTRUCTIONS | 154 #elif defined CAN_USE_VFP3_INSTRUCTIONS |
151 arm_fpu = " vfp3"; | |
152 # else | |
153 arm_fpu = " vfp2"; | |
154 # endif | |
155 # if (defined __thumb__) || (defined __thumb2__) | |
156 arm_thumb = " thumb"; | |
157 # endif | |
158 arm_float_abi = OS::ArmUsingHardFloat() ? "hard" : "softfp"; | |
159 | |
160 #else // __arm__ | |
161 | |
162 arm_test = " simulator"; | |
163 # if defined CAN_USE_VFP3_INSTRUCTIONS | |
164 # if defined CAN_USE_VFP32DREGS | 155 # if defined CAN_USE_VFP32DREGS |
165 arm_fpu = " vfp3"; | 156 arm_fpu = " vfp3"; |
166 # else | 157 # else |
167 arm_fpu = " vfp3-d16"; | 158 arm_fpu = " vfp3-d16"; |
168 # endif | 159 # endif |
169 # else | 160 #else |
170 arm_fpu = " vfp2"; | 161 arm_fpu = " vfp2"; |
171 # endif | 162 #endif |
172 # if USE_EABI_HARDFLOAT == 1 | 163 |
| 164 #ifdef __arm__ |
| 165 arm_float_abi = OS::ArmUsingHardFloat() ? "hard" : "softfp"; |
| 166 #elif USE_EABI_HARDFLOAT |
173 arm_float_abi = "hard"; | 167 arm_float_abi = "hard"; |
174 # else | 168 #else |
175 arm_float_abi = "softfp"; | 169 arm_float_abi = "softfp"; |
176 # endif | 170 #endif |
177 | 171 |
178 #endif // __arm__ | 172 #if defined __arm__ && (defined __thumb__) || (defined __thumb2__) |
| 173 arm_thumb = " thumb"; |
| 174 #endif |
179 | 175 |
180 printf("target%s %s%s%s %s\n", | 176 printf("target%s%s %s%s%s %s\n", |
181 arm_test, arm_arch, arm_fpu, arm_thumb, arm_float_abi); | 177 arm_target_type, arm_no_probe, arm_arch, arm_fpu, arm_thumb, |
| 178 arm_float_abi); |
182 } | 179 } |
183 | 180 |
184 | 181 |
185 void CpuFeatures::PrintFeatures() { | 182 void CpuFeatures::PrintFeatures() { |
186 printf( | 183 printf( |
187 "ARMv7=%d VFP3=%d VFP32DREGS=%d NEON=%d SUDIV=%d UNALIGNED_ACCESSES=%d " | 184 "ARMv7=%d VFP3=%d VFP32DREGS=%d NEON=%d SUDIV=%d UNALIGNED_ACCESSES=%d " |
188 "MOVW_MOVT_IMMEDIATE_LOADS=%d", | 185 "MOVW_MOVT_IMMEDIATE_LOADS=%d", |
189 CpuFeatures::IsSupported(ARMv7), | 186 CpuFeatures::IsSupported(ARMv7), |
190 CpuFeatures::IsSupported(VFP3), | 187 CpuFeatures::IsSupported(VFP3), |
191 CpuFeatures::IsSupported(VFP32DREGS), | 188 CpuFeatures::IsSupported(VFP32DREGS), |
(...skipping 3472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3664 ASSERT((index_64bit == count_of_64bit_) && | 3661 ASSERT((index_64bit == count_of_64bit_) && |
3665 (index_code_ptr == (index_64bit + count_of_code_ptr_)) && | 3662 (index_code_ptr == (index_64bit + count_of_code_ptr_)) && |
3666 (index_heap_ptr == (index_code_ptr + count_of_heap_ptr_)) && | 3663 (index_heap_ptr == (index_code_ptr + count_of_heap_ptr_)) && |
3667 (index_32bit == (index_heap_ptr + count_of_32bit_))); | 3664 (index_32bit == (index_heap_ptr + count_of_32bit_))); |
3668 } | 3665 } |
3669 | 3666 |
3670 | 3667 |
3671 } } // namespace v8::internal | 3668 } } // namespace v8::internal |
3672 | 3669 |
3673 #endif // V8_TARGET_ARCH_ARM | 3670 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |