Index: src/arm/macro-assembler-arm.cc |
diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc |
index 057a59cf522fbf89e334d1d618c8c19bb136fccd..3572e1cd30a94fe49de2c8fe74938c9e328dd8fb 100644 |
--- a/src/arm/macro-assembler-arm.cc |
+++ b/src/arm/macro-assembler-arm.cc |
@@ -1390,6 +1390,26 @@ |
} |
+void MacroAssembler::IsObjectJSObjectType(Register heap_object, |
+ Register map, |
+ Register scratch, |
+ Label* fail) { |
+ ldr(map, FieldMemOperand(heap_object, HeapObject::kMapOffset)); |
+ IsInstanceJSObjectType(map, scratch, fail); |
+} |
+ |
+ |
+void MacroAssembler::IsInstanceJSObjectType(Register map, |
+ Register scratch, |
+ Label* fail) { |
+ ldrb(scratch, FieldMemOperand(map, Map::kInstanceTypeOffset)); |
+ cmp(scratch, Operand(FIRST_NONCALLABLE_SPEC_OBJECT_TYPE)); |
+ b(lt, fail); |
+ cmp(scratch, Operand(LAST_NONCALLABLE_SPEC_OBJECT_TYPE)); |
+ b(gt, fail); |
+} |
+ |
+ |
void MacroAssembler::IsObjectJSStringType(Register object, |
Register scratch, |
Label* fail) { |