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 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
120 } | 120 } |
121 | 121 |
122 // ARM Cortex-A9 and Cortex-A5 have 32 byte cachelines. | 122 // ARM Cortex-A9 and Cortex-A5 have 32 byte cachelines. |
123 if (cpu.implementer() == base::CPU::ARM && | 123 if (cpu.implementer() == base::CPU::ARM && |
124 (cpu.part() == base::CPU::ARM_CORTEX_A5 || | 124 (cpu.part() == base::CPU::ARM_CORTEX_A5 || |
125 cpu.part() == base::CPU::ARM_CORTEX_A9)) { | 125 cpu.part() == base::CPU::ARM_CORTEX_A9)) { |
126 cache_line_size_ = 32; | 126 cache_line_size_ = 32; |
127 } | 127 } |
128 | 128 |
129 if (FLAG_enable_32dregs && cpu.has_vfp3_d32()) supported_ |= 1u << VFP32DREGS; | 129 if (FLAG_enable_32dregs && cpu.has_vfp3_d32()) supported_ |= 1u << VFP32DREGS; |
130 | |
131 if (cpu.implementer() == base::CPU::NVIDIA && | |
132 cpu.variant() == base::CPU::NV_VARIANT_DENVER) | |
133 supported_ |= 1u << COHERENT_CACHE; | |
Benedikt Meurer
2014/12/15 05:33:36
Nit: Add { and } for block.
arajp
2014/12/18 13:25:05
Done.
| |
130 #endif | 134 #endif |
131 | 135 |
132 DCHECK(!IsSupported(VFP3) || IsSupported(ARMv7)); | 136 DCHECK(!IsSupported(VFP3) || IsSupported(ARMv7)); |
133 } | 137 } |
134 | 138 |
135 | 139 |
136 void CpuFeatures::PrintTarget() { | 140 void CpuFeatures::PrintTarget() { |
137 const char* arm_arch = NULL; | 141 const char* arm_arch = NULL; |
138 const char* arm_target_type = ""; | 142 const char* arm_target_type = ""; |
139 const char* arm_no_probe = ""; | 143 const char* arm_no_probe = ""; |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
181 | 185 |
182 printf("target%s%s %s%s%s %s\n", | 186 printf("target%s%s %s%s%s %s\n", |
183 arm_target_type, arm_no_probe, arm_arch, arm_fpu, arm_thumb, | 187 arm_target_type, arm_no_probe, arm_arch, arm_fpu, arm_thumb, |
184 arm_float_abi); | 188 arm_float_abi); |
185 } | 189 } |
186 | 190 |
187 | 191 |
188 void CpuFeatures::PrintFeatures() { | 192 void CpuFeatures::PrintFeatures() { |
189 printf( | 193 printf( |
190 "ARMv7=%d VFP3=%d VFP32DREGS=%d NEON=%d SUDIV=%d UNALIGNED_ACCESSES=%d " | 194 "ARMv7=%d VFP3=%d VFP32DREGS=%d NEON=%d SUDIV=%d UNALIGNED_ACCESSES=%d " |
191 "MOVW_MOVT_IMMEDIATE_LOADS=%d", | 195 "MOVW_MOVT_IMMEDIATE_LOADS=%d COHERENT_CACHE=%d", |
192 CpuFeatures::IsSupported(ARMv7), | 196 CpuFeatures::IsSupported(ARMv7), |
193 CpuFeatures::IsSupported(VFP3), | 197 CpuFeatures::IsSupported(VFP3), |
194 CpuFeatures::IsSupported(VFP32DREGS), | 198 CpuFeatures::IsSupported(VFP32DREGS), |
195 CpuFeatures::IsSupported(NEON), | 199 CpuFeatures::IsSupported(NEON), |
196 CpuFeatures::IsSupported(SUDIV), | 200 CpuFeatures::IsSupported(SUDIV), |
197 CpuFeatures::IsSupported(UNALIGNED_ACCESSES), | 201 CpuFeatures::IsSupported(UNALIGNED_ACCESSES), |
198 CpuFeatures::IsSupported(MOVW_MOVT_IMMEDIATE_LOADS)); | 202 CpuFeatures::IsSupported(MOVW_MOVT_IMMEDIATE_LOADS), |
203 CpuFeatures::IsSupported(COHERENT_CACHE)); | |
199 #ifdef __arm__ | 204 #ifdef __arm__ |
200 bool eabi_hardfloat = base::OS::ArmUsingHardFloat(); | 205 bool eabi_hardfloat = base::OS::ArmUsingHardFloat(); |
201 #elif USE_EABI_HARDFLOAT | 206 #elif USE_EABI_HARDFLOAT |
202 bool eabi_hardfloat = true; | 207 bool eabi_hardfloat = true; |
203 #else | 208 #else |
204 bool eabi_hardfloat = false; | 209 bool eabi_hardfloat = false; |
205 #endif | 210 #endif |
206 printf(" USE_EABI_HARDFLOAT=%d\n", eabi_hardfloat); | 211 printf(" USE_EABI_HARDFLOAT=%d\n", eabi_hardfloat); |
207 } | 212 } |
208 | 213 |
(...skipping 3762 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3971 assm->instr_at_put( | 3976 assm->instr_at_put( |
3972 rinfo.pc(), Assembler::SetLdrRegisterImmediateOffset(instr, offset)); | 3977 rinfo.pc(), Assembler::SetLdrRegisterImmediateOffset(instr, offset)); |
3973 } | 3978 } |
3974 } | 3979 } |
3975 } | 3980 } |
3976 | 3981 |
3977 | 3982 |
3978 } } // namespace v8::internal | 3983 } } // namespace v8::internal |
3979 | 3984 |
3980 #endif // V8_TARGET_ARCH_ARM | 3985 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |