Chromium Code Reviews| 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 |