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

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

Issue 272163002: Make BitField3 a raw uint32 field, and move to the start of the map. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 7 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
« no previous file with comments | « src/arm/macro-assembler-arm.h ('k') | src/arm64/macro-assembler-arm64.h » ('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 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 #include <limits.h> // For LONG_MIN, LONG_MAX. 5 #include <limits.h> // For LONG_MIN, LONG_MAX.
6 6
7 #include "v8.h" 7 #include "v8.h"
8 8
9 #if V8_TARGET_ARCH_ARM 9 #if V8_TARGET_ARCH_ARM
10 10
(...skipping 3578 matching lines...) Expand 10 before | Expand all | Expand 10 after
3589 b(cc, condition_met); 3589 b(cc, condition_met);
3590 } 3590 }
3591 3591
3592 3592
3593 void MacroAssembler::CheckMapDeprecated(Handle<Map> map, 3593 void MacroAssembler::CheckMapDeprecated(Handle<Map> map,
3594 Register scratch, 3594 Register scratch,
3595 Label* if_deprecated) { 3595 Label* if_deprecated) {
3596 if (map->CanBeDeprecated()) { 3596 if (map->CanBeDeprecated()) {
3597 mov(scratch, Operand(map)); 3597 mov(scratch, Operand(map));
3598 ldr(scratch, FieldMemOperand(scratch, Map::kBitField3Offset)); 3598 ldr(scratch, FieldMemOperand(scratch, Map::kBitField3Offset));
3599 tst(scratch, Operand(Smi::FromInt(Map::Deprecated::kMask))); 3599 tst(scratch, Operand(Map::Deprecated::kMask));
3600 b(ne, if_deprecated); 3600 b(ne, if_deprecated);
3601 } 3601 }
3602 } 3602 }
3603 3603
3604 3604
3605 void MacroAssembler::JumpIfBlack(Register object, 3605 void MacroAssembler::JumpIfBlack(Register object,
3606 Register scratch0, 3606 Register scratch0,
3607 Register scratch1, 3607 Register scratch1,
3608 Label* on_black) { 3608 Label* on_black) {
3609 HasColor(object, scratch0, scratch1, on_black, 1, 0); // kBlackBitPattern. 3609 HasColor(object, scratch0, scratch1, on_black, 1, 0); // kBlackBitPattern.
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
3847 3847
3848 void MacroAssembler::NumberOfOwnDescriptors(Register dst, Register map) { 3848 void MacroAssembler::NumberOfOwnDescriptors(Register dst, Register map) {
3849 ldr(dst, FieldMemOperand(map, Map::kBitField3Offset)); 3849 ldr(dst, FieldMemOperand(map, Map::kBitField3Offset));
3850 DecodeField<Map::NumberOfOwnDescriptorsBits>(dst); 3850 DecodeField<Map::NumberOfOwnDescriptorsBits>(dst);
3851 } 3851 }
3852 3852
3853 3853
3854 void MacroAssembler::EnumLength(Register dst, Register map) { 3854 void MacroAssembler::EnumLength(Register dst, Register map) {
3855 STATIC_ASSERT(Map::EnumLengthBits::kShift == 0); 3855 STATIC_ASSERT(Map::EnumLengthBits::kShift == 0);
3856 ldr(dst, FieldMemOperand(map, Map::kBitField3Offset)); 3856 ldr(dst, FieldMemOperand(map, Map::kBitField3Offset));
3857 and_(dst, dst, Operand(Smi::FromInt(Map::EnumLengthBits::kMask))); 3857 and_(dst, dst, Operand(Map::EnumLengthBits::kMask));
3858 SmiTag(dst);
3858 } 3859 }
3859 3860
3860 3861
3861 void MacroAssembler::CheckEnumCache(Register null_value, Label* call_runtime) { 3862 void MacroAssembler::CheckEnumCache(Register null_value, Label* call_runtime) {
3862 Register empty_fixed_array_value = r6; 3863 Register empty_fixed_array_value = r6;
3863 LoadRoot(empty_fixed_array_value, Heap::kEmptyFixedArrayRootIndex); 3864 LoadRoot(empty_fixed_array_value, Heap::kEmptyFixedArrayRootIndex);
3864 Label next, start; 3865 Label next, start;
3865 mov(r2, r0); 3866 mov(r2, r0);
3866 3867
3867 // Check if the enum length field is properly initialized, indicating that 3868 // Check if the enum length field is properly initialized, indicating that
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
4057 sub(result, result, Operand(dividend)); 4058 sub(result, result, Operand(dividend));
4058 } 4059 }
4059 if (ms.shift() > 0) mov(result, Operand(result, ASR, ms.shift())); 4060 if (ms.shift() > 0) mov(result, Operand(result, ASR, ms.shift()));
4060 add(result, result, Operand(dividend, LSR, 31)); 4061 add(result, result, Operand(dividend, LSR, 31));
4061 } 4062 }
4062 4063
4063 4064
4064 } } // namespace v8::internal 4065 } } // namespace v8::internal
4065 4066
4066 #endif // V8_TARGET_ARCH_ARM 4067 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/arm/macro-assembler-arm.h ('k') | src/arm64/macro-assembler-arm64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698