| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_PPC_MACRO_ASSEMBLER_PPC_H_ | 5 #ifndef V8_PPC_MACRO_ASSEMBLER_PPC_H_ |
| 6 #define V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 6 #define V8_PPC_MACRO_ASSEMBLER_PPC_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 884 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 895 // Loads the type into the second argument register. | 895 // Loads the type into the second argument register. |
| 896 // Returns a condition that will be enabled if the object was a string. | 896 // Returns a condition that will be enabled if the object was a string. |
| 897 Condition IsObjectStringType(Register obj, Register type) { | 897 Condition IsObjectStringType(Register obj, Register type) { |
| 898 LoadP(type, FieldMemOperand(obj, HeapObject::kMapOffset)); | 898 LoadP(type, FieldMemOperand(obj, HeapObject::kMapOffset)); |
| 899 lbz(type, FieldMemOperand(type, Map::kInstanceTypeOffset)); | 899 lbz(type, FieldMemOperand(type, Map::kInstanceTypeOffset)); |
| 900 andi(r0, type, Operand(kIsNotStringMask)); | 900 andi(r0, type, Operand(kIsNotStringMask)); |
| 901 DCHECK_EQ(0u, kStringTag); | 901 DCHECK_EQ(0u, kStringTag); |
| 902 return eq; | 902 return eq; |
| 903 } | 903 } |
| 904 | 904 |
| 905 | |
| 906 // Picks out an array index from the hash field. | |
| 907 // Register use: | |
| 908 // hash - holds the index's hash. Clobbered. | |
| 909 // index - holds the overwritten index on exit. | |
| 910 void IndexFromHash(Register hash, Register index); | |
| 911 | |
| 912 // Get the number of least significant bits from a register | 905 // Get the number of least significant bits from a register |
| 913 void GetLeastBitsFromSmi(Register dst, Register src, int num_least_bits); | 906 void GetLeastBitsFromSmi(Register dst, Register src, int num_least_bits); |
| 914 void GetLeastBitsFromInt32(Register dst, Register src, int mun_least_bits); | 907 void GetLeastBitsFromInt32(Register dst, Register src, int mun_least_bits); |
| 915 | 908 |
| 916 // Load the value of a smi object into a double register. | 909 // Load the value of a smi object into a double register. |
| 917 void SmiToDouble(DoubleRegister value, Register smi); | 910 void SmiToDouble(DoubleRegister value, Register smi); |
| 918 | 911 |
| 919 // Check if a double can be exactly represented as a signed 32-bit integer. | 912 // Check if a double can be exactly represented as a signed 32-bit integer. |
| 920 // CR_EQ in cr7 is set if true. | 913 // CR_EQ in cr7 is set if true. |
| 921 void TestDoubleIsInt32(DoubleRegister double_input, Register scratch1, | 914 void TestDoubleIsInt32(DoubleRegister double_input, Register scratch1, |
| (...skipping 743 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1665 inline MemOperand NativeContextMemOperand() { | 1658 inline MemOperand NativeContextMemOperand() { |
| 1666 return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX); | 1659 return ContextMemOperand(cp, Context::NATIVE_CONTEXT_INDEX); |
| 1667 } | 1660 } |
| 1668 | 1661 |
| 1669 #define ACCESS_MASM(masm) masm-> | 1662 #define ACCESS_MASM(masm) masm-> |
| 1670 | 1663 |
| 1671 } // namespace internal | 1664 } // namespace internal |
| 1672 } // namespace v8 | 1665 } // namespace v8 |
| 1673 | 1666 |
| 1674 #endif // V8_PPC_MACRO_ASSEMBLER_PPC_H_ | 1667 #endif // V8_PPC_MACRO_ASSEMBLER_PPC_H_ |
| OLD | NEW |