Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Side by Side Diff: src/arm/assembler-arm.cc

Issue 797233002: Make FlushICache NOP for Nvidia Denver CPU's. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Addressed review comments and corrected few formatting errors Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/arm/cpu-arm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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::NVIDIA_DENVER) {
133 supported_ |= 1u << COHERENT_CACHE;
134 }
130 #endif 135 #endif
131 136
132 DCHECK(!IsSupported(VFP3) || IsSupported(ARMv7)); 137 DCHECK(!IsSupported(VFP3) || IsSupported(ARMv7));
133 } 138 }
134 139
135 140
136 void CpuFeatures::PrintTarget() { 141 void CpuFeatures::PrintTarget() {
137 const char* arm_arch = NULL; 142 const char* arm_arch = NULL;
138 const char* arm_target_type = ""; 143 const char* arm_target_type = "";
139 const char* arm_no_probe = ""; 144 const char* arm_no_probe = "";
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 186
182 printf("target%s%s %s%s%s %s\n", 187 printf("target%s%s %s%s%s %s\n",
183 arm_target_type, arm_no_probe, arm_arch, arm_fpu, arm_thumb, 188 arm_target_type, arm_no_probe, arm_arch, arm_fpu, arm_thumb,
184 arm_float_abi); 189 arm_float_abi);
185 } 190 }
186 191
187 192
188 void CpuFeatures::PrintFeatures() { 193 void CpuFeatures::PrintFeatures() {
189 printf( 194 printf(
190 "ARMv7=%d VFP3=%d VFP32DREGS=%d NEON=%d SUDIV=%d UNALIGNED_ACCESSES=%d " 195 "ARMv7=%d VFP3=%d VFP32DREGS=%d NEON=%d SUDIV=%d UNALIGNED_ACCESSES=%d "
191 "MOVW_MOVT_IMMEDIATE_LOADS=%d", 196 "MOVW_MOVT_IMMEDIATE_LOADS=%d COHERENT_CACHE=%d",
192 CpuFeatures::IsSupported(ARMv7), 197 CpuFeatures::IsSupported(ARMv7),
193 CpuFeatures::IsSupported(VFP3), 198 CpuFeatures::IsSupported(VFP3),
194 CpuFeatures::IsSupported(VFP32DREGS), 199 CpuFeatures::IsSupported(VFP32DREGS),
195 CpuFeatures::IsSupported(NEON), 200 CpuFeatures::IsSupported(NEON),
196 CpuFeatures::IsSupported(SUDIV), 201 CpuFeatures::IsSupported(SUDIV),
197 CpuFeatures::IsSupported(UNALIGNED_ACCESSES), 202 CpuFeatures::IsSupported(UNALIGNED_ACCESSES),
198 CpuFeatures::IsSupported(MOVW_MOVT_IMMEDIATE_LOADS)); 203 CpuFeatures::IsSupported(MOVW_MOVT_IMMEDIATE_LOADS),
204 CpuFeatures::IsSupported(COHERENT_CACHE));
199 #ifdef __arm__ 205 #ifdef __arm__
200 bool eabi_hardfloat = base::OS::ArmUsingHardFloat(); 206 bool eabi_hardfloat = base::OS::ArmUsingHardFloat();
201 #elif USE_EABI_HARDFLOAT 207 #elif USE_EABI_HARDFLOAT
202 bool eabi_hardfloat = true; 208 bool eabi_hardfloat = true;
203 #else 209 #else
204 bool eabi_hardfloat = false; 210 bool eabi_hardfloat = false;
205 #endif 211 #endif
206 printf(" USE_EABI_HARDFLOAT=%d\n", eabi_hardfloat); 212 printf(" USE_EABI_HARDFLOAT=%d\n", eabi_hardfloat);
207 } 213 }
208 214
(...skipping 3762 matching lines...) Expand 10 before | Expand all | Expand 10 after
3971 assm->instr_at_put( 3977 assm->instr_at_put(
3972 rinfo.pc(), Assembler::SetLdrRegisterImmediateOffset(instr, offset)); 3978 rinfo.pc(), Assembler::SetLdrRegisterImmediateOffset(instr, offset));
3973 } 3979 }
3974 } 3980 }
3975 } 3981 }
3976 3982
3977 3983
3978 } } // namespace v8::internal 3984 } } // namespace v8::internal
3979 3985
3980 #endif // V8_TARGET_ARCH_ARM 3986 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « no previous file | src/arm/cpu-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698