| 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 833 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 844 // Machine code version of Map::GetConstructor(). | 844 // Machine code version of Map::GetConstructor(). |
| 845 // |temp| holds |result|'s map when done, and |temp2| its instance type. | 845 // |temp| holds |result|'s map when done, and |temp2| its instance type. |
| 846 void GetMapConstructor(Register result, Register map, Register temp, | 846 void GetMapConstructor(Register result, Register map, Register temp, |
| 847 Register temp2); | 847 Register temp2); |
| 848 | 848 |
| 849 // Try to get function prototype of a function and puts the value in | 849 // Try to get function prototype of a function and puts the value in |
| 850 // the result register. Checks that the function really is a | 850 // the result register. Checks that the function really is a |
| 851 // function and jumps to the miss label if the fast checks fail. The | 851 // function and jumps to the miss label if the fast checks fail. The |
| 852 // function register will be untouched; the other registers may be | 852 // function register will be untouched; the other registers may be |
| 853 // clobbered. | 853 // clobbered. |
| 854 void TryGetFunctionPrototype(Register function, | 854 void TryGetFunctionPrototype(Register function, Register result, |
| 855 Register result, | 855 Register scratch, Label* miss); |
| 856 Register scratch, | |
| 857 Label* miss, | |
| 858 bool miss_on_bound_function = false); | |
| 859 | 856 |
| 860 // Compare object type for heap object. heap_object contains a non-Smi | 857 // Compare object type for heap object. heap_object contains a non-Smi |
| 861 // whose object type should be compared with the given type. This both | 858 // whose object type should be compared with the given type. This both |
| 862 // sets the flags and leaves the object type in the type_reg register. | 859 // sets the flags and leaves the object type in the type_reg register. |
| 863 // It leaves the map in the map register (unless the type_reg and map register | 860 // It leaves the map in the map register (unless the type_reg and map register |
| 864 // are the same register). It leaves the heap object in the heap_object | 861 // are the same register). It leaves the heap object in the heap_object |
| 865 // register unless the heap_object register is the same register as one of the | 862 // register unless the heap_object register is the same register as one of the |
| 866 // other registers. | 863 // other registers. |
| 867 // Type_reg can be no_reg. In that case ip is used. | 864 // Type_reg can be no_reg. In that case ip is used. |
| 868 void CompareObjectType(Register heap_object, | 865 void CompareObjectType(Register heap_object, |
| (...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1368 void JumpIfInstanceTypeIsNotSequentialOneByte(Register type, Register scratch, | 1365 void JumpIfInstanceTypeIsNotSequentialOneByte(Register type, Register scratch, |
| 1369 Label* failure); | 1366 Label* failure); |
| 1370 | 1367 |
| 1371 void JumpIfNotUniqueNameInstanceType(Register reg, Label* not_unique_name); | 1368 void JumpIfNotUniqueNameInstanceType(Register reg, Label* not_unique_name); |
| 1372 | 1369 |
| 1373 void EmitSeqStringSetCharCheck(Register string, | 1370 void EmitSeqStringSetCharCheck(Register string, |
| 1374 Register index, | 1371 Register index, |
| 1375 Register value, | 1372 Register value, |
| 1376 uint32_t encoding_mask); | 1373 uint32_t encoding_mask); |
| 1377 | 1374 |
| 1378 // --------------------------------------------------------------------------- | |
| 1379 // Patching helpers. | |
| 1380 | |
| 1381 // Get the location of a relocated constant (its address in the constant pool) | |
| 1382 // from its load site. | |
| 1383 void GetRelocatedValueLocation(Register ldr_location, Register result, | |
| 1384 Register scratch); | |
| 1385 | |
| 1386 | 1375 |
| 1387 void ClampUint8(Register output_reg, Register input_reg); | 1376 void ClampUint8(Register output_reg, Register input_reg); |
| 1388 | 1377 |
| 1389 void ClampDoubleToUint8(Register result_reg, | 1378 void ClampDoubleToUint8(Register result_reg, |
| 1390 DwVfpRegister input_reg, | 1379 DwVfpRegister input_reg, |
| 1391 LowDwVfpRegister double_scratch); | 1380 LowDwVfpRegister double_scratch); |
| 1392 | 1381 |
| 1393 | 1382 |
| 1394 void LoadInstanceDescriptors(Register map, Register descriptors); | 1383 void LoadInstanceDescriptors(Register map, Register descriptors); |
| 1395 void EnumLength(Register dst, Register map); | 1384 void EnumLength(Register dst, Register map); |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1577 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 1566 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
| 1578 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1567 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
| 1579 #else | 1568 #else |
| 1580 #define ACCESS_MASM(masm) masm-> | 1569 #define ACCESS_MASM(masm) masm-> |
| 1581 #endif | 1570 #endif |
| 1582 | 1571 |
| 1583 | 1572 |
| 1584 } } // namespace v8::internal | 1573 } } // namespace v8::internal |
| 1585 | 1574 |
| 1586 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 1575 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
| OLD | NEW |