OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 5 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "src/arm64/assembler-arm64.h" | 10 #include "src/arm64/assembler-arm64.h" |
(...skipping 1448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1459 Heap::RootListIndex index, | 1459 Heap::RootListIndex index, |
1460 Label* if_not_equal); | 1460 Label* if_not_equal); |
1461 | 1461 |
1462 // Load and check the instance type of an object for being a unique name. | 1462 // Load and check the instance type of an object for being a unique name. |
1463 // Loads the type into the second argument register. | 1463 // Loads the type into the second argument register. |
1464 // The object and type arguments can be the same register; in that case it | 1464 // The object and type arguments can be the same register; in that case it |
1465 // will be overwritten with the type. | 1465 // will be overwritten with the type. |
1466 // Fall-through if the object was a string and jump on fail otherwise. | 1466 // Fall-through if the object was a string and jump on fail otherwise. |
1467 inline void IsObjectNameType(Register object, Register type, Label* fail); | 1467 inline void IsObjectNameType(Register object, Register type, Label* fail); |
1468 | 1468 |
1469 inline void IsObjectJSObjectType(Register heap_object, | |
1470 Register map, | |
1471 Register scratch, | |
1472 Label* fail); | |
1473 | |
1474 // Check the instance type in the given map to see if it corresponds to a | |
1475 // JS object type. Jump to the fail label if this is not the case and fall | |
1476 // through otherwise. However if fail label is NULL, no branch will be | |
1477 // performed and the flag will be updated. You can test the flag for "le" | |
1478 // condition to test if it is a valid JS object type. | |
1479 inline void IsInstanceJSObjectType(Register map, | |
1480 Register scratch, | |
1481 Label* fail); | |
1482 | |
1483 // Load and check the instance type of an object for being a string. | 1469 // Load and check the instance type of an object for being a string. |
1484 // Loads the type into the second argument register. | 1470 // Loads the type into the second argument register. |
1485 // The object and type arguments can be the same register; in that case it | 1471 // The object and type arguments can be the same register; in that case it |
1486 // will be overwritten with the type. | 1472 // will be overwritten with the type. |
1487 // Jumps to not_string or string appropriate. If the appropriate label is | 1473 // Jumps to not_string or string appropriate. If the appropriate label is |
1488 // NULL, fall through. | 1474 // NULL, fall through. |
1489 inline void IsObjectJSStringType(Register object, Register type, | 1475 inline void IsObjectJSStringType(Register object, Register type, |
1490 Label* not_string, Label* string = NULL); | 1476 Label* not_string, Label* string = NULL); |
1491 | 1477 |
1492 // Compare the contents of a register with an operand, and branch to true, | 1478 // Compare the contents of a register with an operand, and branch to true, |
(...skipping 771 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2264 #error "Unsupported option" | 2250 #error "Unsupported option" |
2265 #define CODE_COVERAGE_STRINGIFY(x) #x | 2251 #define CODE_COVERAGE_STRINGIFY(x) #x |
2266 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 2252 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
2267 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 2253 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
2268 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 2254 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
2269 #else | 2255 #else |
2270 #define ACCESS_MASM(masm) masm-> | 2256 #define ACCESS_MASM(masm) masm-> |
2271 #endif | 2257 #endif |
2272 | 2258 |
2273 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 2259 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
OLD | NEW |