Index: src/full-codegen/ppc/full-codegen-ppc.cc |
diff --git a/src/full-codegen/ppc/full-codegen-ppc.cc b/src/full-codegen/ppc/full-codegen-ppc.cc |
index 24a2a387331f4920ec756fbee8d071e712b1b714..a5d4849c9362f7594ffbc85acb7ae9bdcfa5a949 100644 |
--- a/src/full-codegen/ppc/full-codegen-ppc.cc |
+++ b/src/full-codegen/ppc/full-codegen-ppc.cc |
@@ -4031,10 +4031,11 @@ void FullCodeGenerator::EmitLiteralCompareNil(CompareOperation* expr, |
__ cmp(r3, r4); |
Split(eq, if_true, if_false, fall_through); |
} else { |
- Handle<Code> ic = CompareNilICStub::GetUninitialized(isolate(), nil); |
- CallIC(ic, expr->CompareOperationFeedbackId()); |
- __ CompareRoot(r3, Heap::kTrueValueRootIndex); |
- Split(eq, if_true, if_false, fall_through); |
+ __ JumpIfSmi(r3, if_false); |
+ __ LoadP(r3, FieldMemOperand(r3, HeapObject::kMapOffset)); |
+ __ lbz(r4, FieldMemOperand(r3, Map::kBitFieldOffset)); |
+ __ andi(r0, r4, Operand(1 << Map::kIsUndetectable)); |
+ Split(ne, if_true, if_false, fall_through, cr0); |
} |
context()->Plug(if_true, if_false); |
} |