OLD | NEW |
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 #ifndef V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 5 #ifndef V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
6 #define V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 6 #define V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
7 | 7 |
8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
9 #include "src/bailout-reason.h" | 9 #include "src/bailout-reason.h" |
10 #include "src/frames.h" | 10 #include "src/frames.h" |
(...skipping 982 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
993 Register type, | 993 Register type, |
994 Condition cond = al) { | 994 Condition cond = al) { |
995 ldr(type, FieldMemOperand(obj, HeapObject::kMapOffset), cond); | 995 ldr(type, FieldMemOperand(obj, HeapObject::kMapOffset), cond); |
996 ldrb(type, FieldMemOperand(type, Map::kInstanceTypeOffset), cond); | 996 ldrb(type, FieldMemOperand(type, Map::kInstanceTypeOffset), cond); |
997 tst(type, Operand(kIsNotStringMask), cond); | 997 tst(type, Operand(kIsNotStringMask), cond); |
998 DCHECK_EQ(0u, kStringTag); | 998 DCHECK_EQ(0u, kStringTag); |
999 return eq; | 999 return eq; |
1000 } | 1000 } |
1001 | 1001 |
1002 | 1002 |
1003 // Picks out an array index from the hash field. | |
1004 // Register use: | |
1005 // hash - holds the index's hash. Clobbered. | |
1006 // index - holds the overwritten index on exit. | |
1007 void IndexFromHash(Register hash, Register index); | |
1008 | |
1009 // Get the number of least significant bits from a register | 1003 // Get the number of least significant bits from a register |
1010 void GetLeastBitsFromSmi(Register dst, Register src, int num_least_bits); | 1004 void GetLeastBitsFromSmi(Register dst, Register src, int num_least_bits); |
1011 void GetLeastBitsFromInt32(Register dst, Register src, int mun_least_bits); | 1005 void GetLeastBitsFromInt32(Register dst, Register src, int mun_least_bits); |
1012 | 1006 |
1013 // Load the value of a smi object into a double register. | 1007 // Load the value of a smi object into a double register. |
1014 // The register value must be between d0 and d15. | 1008 // The register value must be between d0 and d15. |
1015 void SmiToDouble(LowDwVfpRegister value, Register smi); | 1009 void SmiToDouble(LowDwVfpRegister value, Register smi); |
1016 | 1010 |
1017 // Check if a double can be exactly represented as a signed 32-bit integer. | 1011 // Check if a double can be exactly represented as a signed 32-bit integer. |
1018 // Z flag set to one if true. | 1012 // Z flag set to one if true. |
(...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1604 inline MemOperand NativeContextMemOperand() { | 1598 inline MemOperand NativeContextMemOperand() { |
1605 return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX); | 1599 return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX); |
1606 } | 1600 } |
1607 | 1601 |
1608 #define ACCESS_MASM(masm) masm-> | 1602 #define ACCESS_MASM(masm) masm-> |
1609 | 1603 |
1610 } // namespace internal | 1604 } // namespace internal |
1611 } // namespace v8 | 1605 } // namespace v8 |
1612 | 1606 |
1613 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 1607 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
OLD | NEW |