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 are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // 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 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 CHECK_EQ(expected_size_, assembler_->pc_offset() - start_offset_); | 227 CHECK_EQ(expected_size_, assembler_->pc_offset() - start_offset_); |
228 } | 228 } |
229 assembler_->set_predictable_code_size(old_value_); | 229 assembler_->set_predictable_code_size(old_value_); |
230 } | 230 } |
231 | 231 |
232 | 232 |
233 // ----------------------------------------------------------------------------- | 233 // ----------------------------------------------------------------------------- |
234 // Implementation of CpuFeatureScope | 234 // Implementation of CpuFeatureScope |
235 | 235 |
236 #ifdef DEBUG | 236 #ifdef DEBUG |
237 CpuFeatureScope::CpuFeatureScope(AssemblerBase* assembler, CpuFeature f) | 237 CpuFeatureScope::CpuFeatureScope(AssemblerBase* assembler, CpuFeature f, |
| 238 CheckPolicy check) |
238 : assembler_(assembler) { | 239 : assembler_(assembler) { |
239 DCHECK(CpuFeatures::IsSupported(f)); | 240 DCHECK_IMPLIES(check == kCheckSupported, CpuFeatures::IsSupported(f)); |
240 old_enabled_ = assembler_->enabled_cpu_features(); | 241 old_enabled_ = assembler_->enabled_cpu_features(); |
241 uint64_t mask = static_cast<uint64_t>(1) << f; | 242 assembler_->EnableCpuFeature(f); |
242 // TODO(svenpanne) This special case below doesn't belong here! | |
243 #if V8_TARGET_ARCH_ARM | |
244 // ARMv7 is implied by VFP3. | |
245 if (f == VFP3) { | |
246 mask |= static_cast<uint64_t>(1) << ARMv7; | |
247 } | |
248 #endif | |
249 assembler_->set_enabled_cpu_features(old_enabled_ | mask); | |
250 } | 243 } |
251 | 244 |
252 | |
253 CpuFeatureScope::~CpuFeatureScope() { | 245 CpuFeatureScope::~CpuFeatureScope() { |
254 assembler_->set_enabled_cpu_features(old_enabled_); | 246 assembler_->set_enabled_cpu_features(old_enabled_); |
255 } | 247 } |
256 #endif | 248 #endif |
257 | 249 |
258 | 250 |
259 bool CpuFeatures::initialized_ = false; | 251 bool CpuFeatures::initialized_ = false; |
260 unsigned CpuFeatures::supported_ = 0; | 252 unsigned CpuFeatures::supported_ = 0; |
261 unsigned CpuFeatures::icache_line_size_ = 0; | 253 unsigned CpuFeatures::icache_line_size_ = 0; |
262 unsigned CpuFeatures::dcache_line_size_ = 0; | 254 unsigned CpuFeatures::dcache_line_size_ = 0; |
(...skipping 1695 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1958 | 1950 |
1959 | 1951 |
1960 void Assembler::DataAlign(int m) { | 1952 void Assembler::DataAlign(int m) { |
1961 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); | 1953 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); |
1962 while ((pc_offset() & (m - 1)) != 0) { | 1954 while ((pc_offset() & (m - 1)) != 0) { |
1963 db(0); | 1955 db(0); |
1964 } | 1956 } |
1965 } | 1957 } |
1966 } // namespace internal | 1958 } // namespace internal |
1967 } // namespace v8 | 1959 } // namespace v8 |
OLD | NEW |