Index: src/ppc/macro-assembler-ppc.cc |
diff --git a/src/ppc/macro-assembler-ppc.cc b/src/ppc/macro-assembler-ppc.cc |
index a4da3ed68b4eef034f6c7f0ce4a5aadeb5321d44..80e17e36f6a1bc5c6e80497bc99785c67586062c 100644 |
--- a/src/ppc/macro-assembler-ppc.cc |
+++ b/src/ppc/macro-assembler-ppc.cc |
@@ -1605,90 +1605,6 @@ void MacroAssembler::PopStackHandler() { |
} |
-void MacroAssembler::CheckAccessGlobalProxy(Register holder_reg, |
- Register scratch, Label* miss) { |
- Label same_contexts; |
- |
- DCHECK(!holder_reg.is(scratch)); |
- DCHECK(!holder_reg.is(ip)); |
- DCHECK(!scratch.is(ip)); |
- |
- // Load current lexical context from the active StandardFrame, which |
- // may require crawling past STUB frames. |
- Label load_context; |
- Label has_context; |
- DCHECK(!ip.is(scratch)); |
- mr(ip, fp); |
- bind(&load_context); |
- LoadP(scratch, |
- MemOperand(ip, CommonFrameConstants::kContextOrFrameTypeOffset)); |
- JumpIfNotSmi(scratch, &has_context); |
- LoadP(ip, MemOperand(ip, CommonFrameConstants::kCallerFPOffset)); |
- b(&load_context); |
- bind(&has_context); |
- |
-// In debug mode, make sure the lexical context is set. |
-#ifdef DEBUG |
- cmpi(scratch, Operand::Zero()); |
- Check(ne, kWeShouldNotHaveAnEmptyLexicalContext); |
-#endif |
- |
- // Load the native context of the current context. |
- LoadP(scratch, ContextMemOperand(scratch, Context::NATIVE_CONTEXT_INDEX)); |
- |
- // Check the context is a native context. |
- if (emit_debug_code()) { |
- // Cannot use ip as a temporary in this verification code. Due to the fact |
- // that ip is clobbered as part of cmp with an object Operand. |
- push(holder_reg); // Temporarily save holder on the stack. |
- // Read the first word and compare to the native_context_map. |
- LoadP(holder_reg, FieldMemOperand(scratch, HeapObject::kMapOffset)); |
- LoadRoot(ip, Heap::kNativeContextMapRootIndex); |
- cmp(holder_reg, ip); |
- Check(eq, kJSGlobalObjectNativeContextShouldBeANativeContext); |
- pop(holder_reg); // Restore holder. |
- } |
- |
- // Check if both contexts are the same. |
- LoadP(ip, FieldMemOperand(holder_reg, JSGlobalProxy::kNativeContextOffset)); |
- cmp(scratch, ip); |
- beq(&same_contexts); |
- |
- // Check the context is a native context. |
- if (emit_debug_code()) { |
- // Cannot use ip as a temporary in this verification code. Due to the fact |
- // that ip is clobbered as part of cmp with an object Operand. |
- push(holder_reg); // Temporarily save holder on the stack. |
- mr(holder_reg, ip); // Move ip to its holding place. |
- LoadRoot(ip, Heap::kNullValueRootIndex); |
- cmp(holder_reg, ip); |
- Check(ne, kJSGlobalProxyContextShouldNotBeNull); |
- |
- LoadP(holder_reg, FieldMemOperand(holder_reg, HeapObject::kMapOffset)); |
- LoadRoot(ip, Heap::kNativeContextMapRootIndex); |
- cmp(holder_reg, ip); |
- Check(eq, kJSGlobalObjectNativeContextShouldBeANativeContext); |
- // Restore ip is not needed. ip is reloaded below. |
- pop(holder_reg); // Restore holder. |
- // Restore ip to holder's context. |
- LoadP(ip, FieldMemOperand(holder_reg, JSGlobalProxy::kNativeContextOffset)); |
- } |
- |
- // Check that the security token in the calling global object is |
- // compatible with the security token in the receiving global |
- // object. |
- int token_offset = |
- Context::kHeaderSize + Context::SECURITY_TOKEN_INDEX * kPointerSize; |
- |
- LoadP(scratch, FieldMemOperand(scratch, token_offset)); |
- LoadP(ip, FieldMemOperand(ip, token_offset)); |
- cmp(scratch, ip); |
- bne(miss); |
- |
- bind(&same_contexts); |
-} |
- |
- |
// Compute the hash code from the untagged key. This must be kept in sync with |
// ComputeIntegerHash in utils.h and KeyedLoadGenericStub in |
// code-stub-hydrogen.cc |