OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 1391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1402 } | 1402 } |
1403 | 1403 |
1404 | 1404 |
1405 void MacroAssembler::JumpIfBothNotSmi(Register value1, | 1405 void MacroAssembler::JumpIfBothNotSmi(Register value1, |
1406 Register value2, | 1406 Register value2, |
1407 Label* not_smi_label) { | 1407 Label* not_smi_label) { |
1408 JumpIfEitherSmi(value1, value2, NULL, not_smi_label); | 1408 JumpIfEitherSmi(value1, value2, NULL, not_smi_label); |
1409 } | 1409 } |
1410 | 1410 |
1411 | 1411 |
| 1412 void MacroAssembler::ObjectTag(Register tagged_obj, Register obj) { |
| 1413 STATIC_ASSERT(kHeapObjectTag == 1); |
| 1414 if (emit_debug_code()) { |
| 1415 Label ok; |
| 1416 Tbz(obj, 0, &ok); |
| 1417 Abort(kObjectTagged); |
| 1418 Bind(&ok); |
| 1419 } |
| 1420 Orr(tagged_obj, obj, kHeapObjectTag); |
| 1421 } |
| 1422 |
| 1423 |
| 1424 void MacroAssembler::ObjectUntag(Register untagged_obj, Register obj) { |
| 1425 STATIC_ASSERT(kHeapObjectTag == 1); |
| 1426 if (emit_debug_code()) { |
| 1427 Label ok; |
| 1428 Tbnz(obj, 0, &ok); |
| 1429 Abort(kObjectNotTagged); |
| 1430 Bind(&ok); |
| 1431 } |
| 1432 Bic(untagged_obj, obj, kHeapObjectTag); |
| 1433 } |
| 1434 |
| 1435 |
1412 void MacroAssembler::IsObjectNameType(Register object, | 1436 void MacroAssembler::IsObjectNameType(Register object, |
1413 Register type, | 1437 Register type, |
1414 Label* fail) { | 1438 Label* fail) { |
1415 CompareObjectType(object, type, type, LAST_NAME_TYPE); | 1439 CompareObjectType(object, type, type, LAST_NAME_TYPE); |
1416 B(hi, fail); | 1440 B(hi, fail); |
1417 } | 1441 } |
1418 | 1442 |
1419 | 1443 |
1420 void MacroAssembler::IsObjectJSObjectType(Register heap_object, | 1444 void MacroAssembler::IsObjectJSObjectType(Register heap_object, |
1421 Register map, | 1445 Register map, |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1668 // characters are reserved for controlling features of the instrumentation. | 1692 // characters are reserved for controlling features of the instrumentation. |
1669 ASSERT(isprint(marker_name[0]) && isprint(marker_name[1])); | 1693 ASSERT(isprint(marker_name[0]) && isprint(marker_name[1])); |
1670 | 1694 |
1671 InstructionAccurateScope scope(this, 1); | 1695 InstructionAccurateScope scope(this, 1); |
1672 movn(xzr, (marker_name[1] << 8) | marker_name[0]); | 1696 movn(xzr, (marker_name[1] << 8) | marker_name[0]); |
1673 } | 1697 } |
1674 | 1698 |
1675 } } // namespace v8::internal | 1699 } } // namespace v8::internal |
1676 | 1700 |
1677 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_INL_H_ | 1701 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_INL_H_ |
OLD | NEW |