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

Side by Side Diff: src/objects-inl.h

Issue 422063005: Contribution of PowerPC port. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Caught up to bleending edge (8/15) Created 6 years, 4 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // Review notes: 5 // Review notes:
6 // 6 //
7 // - The use of macros in these inline functions may seem superfluous 7 // - The use of macros in these inline functions may seem superfluous
8 // but it is absolutely needed to make sure gcc generates optimal 8 // but it is absolutely needed to make sure gcc generates optimal
9 // code. gcc is not happy when attempting to inline too deep. 9 // code. gcc is not happy when attempting to inline too deep.
10 // 10 //
(...skipping 3323 matching lines...) Expand 10 before | Expand all | Expand 10 after
3334 SMI_ACCESSORS(String, length, kLengthOffset) 3334 SMI_ACCESSORS(String, length, kLengthOffset)
3335 SYNCHRONIZED_SMI_ACCESSORS(String, length, kLengthOffset) 3335 SYNCHRONIZED_SMI_ACCESSORS(String, length, kLengthOffset)
3336 3336
3337 3337
3338 uint32_t Name::hash_field() { 3338 uint32_t Name::hash_field() {
3339 return READ_UINT32_FIELD(this, kHashFieldOffset); 3339 return READ_UINT32_FIELD(this, kHashFieldOffset);
3340 } 3340 }
3341 3341
3342 3342
3343 void Name::set_hash_field(uint32_t value) { 3343 void Name::set_hash_field(uint32_t value) {
3344 WRITE_UINT32_FIELD(this, kHashFieldOffset, value); 3344 WRITE_INTPTR_FIELD(this, kHashFieldSlot, value);
3345 #if V8_HOST_ARCH_64_BIT
3346 WRITE_UINT32_FIELD(this, kHashFieldOffset + kIntSize, 0);
3347 #endif
3348 } 3345 }
3349 3346
3350 3347
3351 bool Name::Equals(Name* other) { 3348 bool Name::Equals(Name* other) {
3352 if (other == this) return true; 3349 if (other == this) return true;
3353 if ((this->IsInternalizedString() && other->IsInternalizedString()) || 3350 if ((this->IsInternalizedString() && other->IsInternalizedString()) ||
3354 this->IsSymbol() || other->IsSymbol()) { 3351 this->IsSymbol() || other->IsSymbol()) {
3355 return false; 3352 return false;
3356 } 3353 }
3357 return String::cast(this)->SlowEquals(String::cast(other)); 3354 return String::cast(this)->SlowEquals(String::cast(other));
(...skipping 2147 matching lines...) Expand 10 before | Expand all | Expand 10 after
5505 SMI_ACCESSORS(SharedFunctionInfo, compiler_hints, 5502 SMI_ACCESSORS(SharedFunctionInfo, compiler_hints,
5506 kCompilerHintsOffset) 5503 kCompilerHintsOffset)
5507 SMI_ACCESSORS(SharedFunctionInfo, opt_count_and_bailout_reason, 5504 SMI_ACCESSORS(SharedFunctionInfo, opt_count_and_bailout_reason,
5508 kOptCountAndBailoutReasonOffset) 5505 kOptCountAndBailoutReasonOffset)
5509 SMI_ACCESSORS(SharedFunctionInfo, counters, kCountersOffset) 5506 SMI_ACCESSORS(SharedFunctionInfo, counters, kCountersOffset)
5510 SMI_ACCESSORS(SharedFunctionInfo, ast_node_count, kAstNodeCountOffset) 5507 SMI_ACCESSORS(SharedFunctionInfo, ast_node_count, kAstNodeCountOffset)
5511 SMI_ACCESSORS(SharedFunctionInfo, profiler_ticks, kProfilerTicksOffset) 5508 SMI_ACCESSORS(SharedFunctionInfo, profiler_ticks, kProfilerTicksOffset)
5512 5509
5513 #else 5510 #else
5514 5511
5515 #define PSEUDO_SMI_ACCESSORS_LO(holder, name, offset) \ 5512 #if V8_TARGET_LITTLE_ENDIAN
5516 STATIC_ASSERT(holder::offset % kPointerSize == 0); \ 5513 #define PSEUDO_SMI_LO_ALIGN 0
5517 int holder::name() const { \ 5514 #define PSEUDO_SMI_HI_ALIGN kIntSize
5518 int value = READ_INT_FIELD(this, offset); \ 5515 #else
5516 #define PSEUDO_SMI_LO_ALIGN kIntSize
5517 #define PSEUDO_SMI_HI_ALIGN 0
5518 #endif
5519
5520 #define PSEUDO_SMI_ACCESSORS_LO(holder, name, offset) \
5521 STATIC_ASSERT(holder::offset % kPointerSize == PSEUDO_SMI_LO_ALIGN); \
5522 int holder::name() const { \
5523 int value = READ_INT_FIELD(this, offset); \
5519 DCHECK(kHeapObjectTag == 1); \ 5524 DCHECK(kHeapObjectTag == 1); \
5520 DCHECK((value & kHeapObjectTag) == 0); \ 5525 DCHECK((value & kHeapObjectTag) == 0); \
5521 return value >> 1; \ 5526 return value >> 1; \
5522 } \ 5527 } \
5523 void holder::set_##name(int value) { \ 5528 void holder::set_##name(int value) { \
5524 DCHECK(kHeapObjectTag == 1); \ 5529 DCHECK(kHeapObjectTag == 1); \
5525 DCHECK((value & 0xC0000000) == 0xC0000000 || \ 5530 DCHECK((value & 0xC0000000) == 0xC0000000 || \
5526 (value & 0xC0000000) == 0x0); \ 5531 (value & 0xC0000000) == 0x0); \
5527 WRITE_INT_FIELD(this, \ 5532 WRITE_INT_FIELD(this, \
5528 offset, \ 5533 offset, \
5529 (value << 1) & ~kHeapObjectTag); \ 5534 (value << 1) & ~kHeapObjectTag); \
5530 } 5535 }
5531 5536
5532 #define PSEUDO_SMI_ACCESSORS_HI(holder, name, offset) \ 5537 #define PSEUDO_SMI_ACCESSORS_HI(holder, name, offset) \
5533 STATIC_ASSERT(holder::offset % kPointerSize == kIntSize); \ 5538 STATIC_ASSERT(holder::offset % kPointerSize == PSEUDO_SMI_HI_ALIGN); \
5534 INT_ACCESSORS(holder, name, offset) 5539 INT_ACCESSORS(holder, name, offset)
5535 5540
5536 5541
5537 PSEUDO_SMI_ACCESSORS_LO(SharedFunctionInfo, length, kLengthOffset) 5542 PSEUDO_SMI_ACCESSORS_LO(SharedFunctionInfo, length, kLengthOffset)
5538 PSEUDO_SMI_ACCESSORS_HI(SharedFunctionInfo, 5543 PSEUDO_SMI_ACCESSORS_HI(SharedFunctionInfo,
5539 formal_parameter_count, 5544 formal_parameter_count,
5540 kFormalParameterCountOffset) 5545 kFormalParameterCountOffset)
5541 5546
5542 PSEUDO_SMI_ACCESSORS_LO(SharedFunctionInfo, 5547 PSEUDO_SMI_ACCESSORS_LO(SharedFunctionInfo,
5543 expected_nof_properties, 5548 expected_nof_properties,
(...skipping 1739 matching lines...) Expand 10 before | Expand all | Expand 10 after
7283 #undef READ_SHORT_FIELD 7288 #undef READ_SHORT_FIELD
7284 #undef WRITE_SHORT_FIELD 7289 #undef WRITE_SHORT_FIELD
7285 #undef READ_BYTE_FIELD 7290 #undef READ_BYTE_FIELD
7286 #undef WRITE_BYTE_FIELD 7291 #undef WRITE_BYTE_FIELD
7287 #undef NOBARRIER_READ_BYTE_FIELD 7292 #undef NOBARRIER_READ_BYTE_FIELD
7288 #undef NOBARRIER_WRITE_BYTE_FIELD 7293 #undef NOBARRIER_WRITE_BYTE_FIELD
7289 7294
7290 } } // namespace v8::internal 7295 } } // namespace v8::internal
7291 7296
7292 #endif // V8_OBJECTS_INL_H_ 7297 #endif // V8_OBJECTS_INL_H_
OLDNEW
« no previous file with comments | « src/objects.cc ('k') | src/objects-printer.cc » ('j') | src/objects-printer.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698