Index: src/ia32/macro-assembler-ia32.cc |
=================================================================== |
--- src/ia32/macro-assembler-ia32.cc (revision 4792) |
+++ src/ia32/macro-assembler-ia32.cc (working copy) |
@@ -296,6 +296,25 @@ |
} |
+void MacroAssembler::IsObjectJSObjectType(Register heap_object, |
+ Register map, |
+ Register scratch, |
+ Label* fail) { |
+ mov(map, FieldOperand(heap_object, HeapObject::kMapOffset)); |
+ IsInstanceJSObjectType(map, scratch, fail); |
+} |
+ |
+ |
+void MacroAssembler::IsInstanceJSObjectType(Register map, |
+ Register scratch, |
+ Label* fail) { |
+ movzx_b(scratch, FieldOperand(map, Map::kInstanceTypeOffset)); |
+ sub(Operand(scratch), Immediate(FIRST_JS_OBJECT_TYPE)); |
+ cmp(scratch, LAST_JS_OBJECT_TYPE - FIRST_JS_OBJECT_TYPE); |
+ j(above, fail); |
+} |
+ |
+ |
void MacroAssembler::FCmp() { |
if (CpuFeatures::IsSupported(CMOV)) { |
fucomip(); |