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 1472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1483 Heap::RootListIndex index, | 1483 Heap::RootListIndex index, |
1484 Label* if_not_equal); | 1484 Label* if_not_equal); |
1485 | 1485 |
1486 // Load and check the instance type of an object for being a unique name. | 1486 // Load and check the instance type of an object for being a unique name. |
1487 // Loads the type into the second argument register. | 1487 // Loads the type into the second argument register. |
1488 // The object and type arguments can be the same register; in that case it | 1488 // The object and type arguments can be the same register; in that case it |
1489 // will be overwritten with the type. | 1489 // will be overwritten with the type. |
1490 // Fall-through if the object was a string and jump on fail otherwise. | 1490 // Fall-through if the object was a string and jump on fail otherwise. |
1491 inline void IsObjectNameType(Register object, Register type, Label* fail); | 1491 inline void IsObjectNameType(Register object, Register type, Label* fail); |
1492 | 1492 |
1493 inline void IsObjectJSObjectType(Register heap_object, | |
1494 Register map, | |
1495 Register scratch, | |
1496 Label* fail); | |
1497 | |
1498 // Check the instance type in the given map to see if it corresponds to a | |
1499 // JS object type. Jump to the fail label if this is not the case and fall | |
1500 // through otherwise. However if fail label is NULL, no branch will be | |
1501 // performed and the flag will be updated. You can test the flag for "le" | |
1502 // condition to test if it is a valid JS object type. | |
1503 inline void IsInstanceJSObjectType(Register map, | |
1504 Register scratch, | |
1505 Label* fail); | |
1506 | |
1507 // Load and check the instance type of an object for being a string. | 1493 // Load and check the instance type of an object for being a string. |
1508 // Loads the type into the second argument register. | 1494 // Loads the type into the second argument register. |
1509 // The object and type arguments can be the same register; in that case it | 1495 // The object and type arguments can be the same register; in that case it |
1510 // will be overwritten with the type. | 1496 // will be overwritten with the type. |
1511 // Jumps to not_string or string appropriate. If the appropriate label is | 1497 // Jumps to not_string or string appropriate. If the appropriate label is |
1512 // NULL, fall through. | 1498 // NULL, fall through. |
1513 inline void IsObjectJSStringType(Register object, Register type, | 1499 inline void IsObjectJSStringType(Register object, Register type, |
1514 Label* not_string, Label* string = NULL); | 1500 Label* not_string, Label* string = NULL); |
1515 | 1501 |
1516 // Compare the contents of a register with an operand, and branch to true, | 1502 // Compare the contents of a register with an operand, and branch to true, |
(...skipping 770 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2287 #error "Unsupported option" | 2273 #error "Unsupported option" |
2288 #define CODE_COVERAGE_STRINGIFY(x) #x | 2274 #define CODE_COVERAGE_STRINGIFY(x) #x |
2289 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 2275 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
2290 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 2276 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
2291 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 2277 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
2292 #else | 2278 #else |
2293 #define ACCESS_MASM(masm) masm-> | 2279 #define ACCESS_MASM(masm) masm-> |
2294 #endif | 2280 #endif |
2295 | 2281 |
2296 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 2282 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
OLD | NEW |