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 |
1493 // Load and check the instance type of an object for being a string. | 1507 // Load and check the instance type of an object for being a string. |
1494 // Loads the type into the second argument register. | 1508 // Loads the type into the second argument register. |
1495 // The object and type arguments can be the same register; in that case it | 1509 // The object and type arguments can be the same register; in that case it |
1496 // will be overwritten with the type. | 1510 // will be overwritten with the type. |
1497 // Jumps to not_string or string appropriate. If the appropriate label is | 1511 // Jumps to not_string or string appropriate. If the appropriate label is |
1498 // NULL, fall through. | 1512 // NULL, fall through. |
1499 inline void IsObjectJSStringType(Register object, Register type, | 1513 inline void IsObjectJSStringType(Register object, Register type, |
1500 Label* not_string, Label* string = NULL); | 1514 Label* not_string, Label* string = NULL); |
1501 | 1515 |
1502 // Compare the contents of a register with an operand, and branch to true, | 1516 // 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... |
2273 #error "Unsupported option" | 2287 #error "Unsupported option" |
2274 #define CODE_COVERAGE_STRINGIFY(x) #x | 2288 #define CODE_COVERAGE_STRINGIFY(x) #x |
2275 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 2289 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
2276 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 2290 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
2277 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 2291 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
2278 #else | 2292 #else |
2279 #define ACCESS_MASM(masm) masm-> | 2293 #define ACCESS_MASM(masm) masm-> |
2280 #endif | 2294 #endif |
2281 | 2295 |
2282 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 2296 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
OLD | NEW |