Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(22)

Side by Side Diff: src/arm64/macro-assembler-arm64-inl.h

Issue 1306303005: Revert of [es5] Class of object is "Function" if object has [[Call]]. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/arm64/macro-assembler-arm64.h ('k') | src/full-codegen/arm/full-codegen-arm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_INL_H_ 5 #ifndef V8_ARM64_MACRO_ASSEMBLER_ARM64_INL_H_
6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_INL_H_ 6 #define V8_ARM64_MACRO_ASSEMBLER_ARM64_INL_H_
7 7
8 #include <ctype.h> 8 #include <ctype.h>
9 9
10 #include "src/globals.h" 10 #include "src/globals.h"
(...skipping 1416 matching lines...) Expand 10 before | Expand all | Expand 10 after
1427 1427
1428 1428
1429 void MacroAssembler::IsObjectNameType(Register object, 1429 void MacroAssembler::IsObjectNameType(Register object,
1430 Register type, 1430 Register type,
1431 Label* fail) { 1431 Label* fail) {
1432 CompareObjectType(object, type, type, LAST_NAME_TYPE); 1432 CompareObjectType(object, type, type, LAST_NAME_TYPE);
1433 B(hi, fail); 1433 B(hi, fail);
1434 } 1434 }
1435 1435
1436 1436
1437 void MacroAssembler::IsObjectJSObjectType(Register heap_object,
1438 Register map,
1439 Register scratch,
1440 Label* fail) {
1441 Ldr(map, FieldMemOperand(heap_object, HeapObject::kMapOffset));
1442 IsInstanceJSObjectType(map, scratch, fail);
1443 }
1444
1445
1446 void MacroAssembler::IsInstanceJSObjectType(Register map,
1447 Register scratch,
1448 Label* fail) {
1449 Ldrb(scratch, FieldMemOperand(map, Map::kInstanceTypeOffset));
1450 // If cmp result is lt, the following ccmp will clear all flags.
1451 // Z == 0, N == V implies gt condition.
1452 Cmp(scratch, FIRST_NONCALLABLE_SPEC_OBJECT_TYPE);
1453 Ccmp(scratch, LAST_NONCALLABLE_SPEC_OBJECT_TYPE, NoFlag, ge);
1454
1455 // If we didn't get a valid label object just fall through and leave the
1456 // flags updated.
1457 if (fail != NULL) {
1458 B(gt, fail);
1459 }
1460 }
1461
1462
1437 void MacroAssembler::IsObjectJSStringType(Register object, 1463 void MacroAssembler::IsObjectJSStringType(Register object,
1438 Register type, 1464 Register type,
1439 Label* not_string, 1465 Label* not_string,
1440 Label* string) { 1466 Label* string) {
1441 Ldr(type, FieldMemOperand(object, HeapObject::kMapOffset)); 1467 Ldr(type, FieldMemOperand(object, HeapObject::kMapOffset));
1442 Ldrb(type.W(), FieldMemOperand(type, Map::kInstanceTypeOffset)); 1468 Ldrb(type.W(), FieldMemOperand(type, Map::kInstanceTypeOffset));
1443 1469
1444 STATIC_ASSERT(kStringTag == 0); 1470 STATIC_ASSERT(kStringTag == 0);
1445 DCHECK((string != NULL) || (not_string != NULL)); 1471 DCHECK((string != NULL) || (not_string != NULL));
1446 if (string == NULL) { 1472 if (string == NULL) {
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
1653 // characters are reserved for controlling features of the instrumentation. 1679 // characters are reserved for controlling features of the instrumentation.
1654 DCHECK(isprint(marker_name[0]) && isprint(marker_name[1])); 1680 DCHECK(isprint(marker_name[0]) && isprint(marker_name[1]));
1655 1681
1656 InstructionAccurateScope scope(this, 1); 1682 InstructionAccurateScope scope(this, 1);
1657 movn(xzr, (marker_name[1] << 8) | marker_name[0]); 1683 movn(xzr, (marker_name[1] << 8) | marker_name[0]);
1658 } 1684 }
1659 1685
1660 } } // namespace v8::internal 1686 } } // namespace v8::internal
1661 1687
1662 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_INL_H_ 1688 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_INL_H_
OLDNEW
« no previous file with comments | « src/arm64/macro-assembler-arm64.h ('k') | src/full-codegen/arm/full-codegen-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698