| Index: src/x64/full-codegen-x64.cc
|
| ===================================================================
|
| --- src/x64/full-codegen-x64.cc (revision 4690)
|
| +++ src/x64/full-codegen-x64.cc (working copy)
|
| @@ -3022,31 +3022,30 @@
|
| }
|
|
|
|
|
| - void FullCodeGenerator::EmitNullCompare(bool strict,
|
| - Register obj,
|
| - Register null_const,
|
| - Label* if_true,
|
| - Label* if_false,
|
| - Register scratch) {
|
| - __ cmpq(obj, null_const);
|
| - if (strict) {
|
| - __ j(equal, if_true);
|
| - } else {
|
| - __ j(equal, if_true);
|
| - __ CompareRoot(obj, Heap::kUndefinedValueRootIndex);
|
| - __ j(equal, if_true);
|
| - __ JumpIfSmi(obj, if_false);
|
| - // It can be an undetectable object.
|
| - __ movq(scratch, FieldOperand(obj, HeapObject::kMapOffset));
|
| - __ testb(FieldOperand(scratch, Map::kBitFieldOffset),
|
| - Immediate(1 << Map::kIsUndetectable));
|
| - __ j(not_zero, if_true);
|
| - }
|
| - __ jmp(if_false);
|
| - }
|
| +void FullCodeGenerator::EmitNullCompare(bool strict,
|
| + Register obj,
|
| + Register null_const,
|
| + Label* if_true,
|
| + Label* if_false,
|
| + Register scratch) {
|
| + __ cmpq(obj, null_const);
|
| + if (strict) {
|
| + __ j(equal, if_true);
|
| + } else {
|
| + __ j(equal, if_true);
|
| + __ CompareRoot(obj, Heap::kUndefinedValueRootIndex);
|
| + __ j(equal, if_true);
|
| + __ JumpIfSmi(obj, if_false);
|
| + // It can be an undetectable object.
|
| + __ movq(scratch, FieldOperand(obj, HeapObject::kMapOffset));
|
| + __ testb(FieldOperand(scratch, Map::kBitFieldOffset),
|
| + Immediate(1 << Map::kIsUndetectable));
|
| + __ j(not_zero, if_true);
|
| + }
|
| + __ jmp(if_false);
|
| +}
|
|
|
|
|
| -
|
| void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) {
|
| Comment cmnt(masm_, "[ CompareOperation");
|
|
|
|
|