Index: src/arm/macro-assembler-arm.cc |
diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc |
index 3d760f0ad11fa2c733f980f5b3217d6b0476fc65..8976d9fde1af877654e9fa21452c1da934702dff 100644 |
--- a/src/arm/macro-assembler-arm.cc |
+++ b/src/arm/macro-assembler-arm.cc |
@@ -1830,90 +1830,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)); |
- mov(ip, fp); |
- bind(&load_context); |
- ldr(scratch, MemOperand(ip, CommonFrameConstants::kContextOrFrameTypeOffset)); |
- JumpIfNotSmi(scratch, &has_context); |
- ldr(ip, MemOperand(ip, CommonFrameConstants::kCallerFPOffset)); |
- b(&load_context); |
- bind(&has_context); |
- |
- // In debug mode, make sure the lexical context is set. |
-#ifdef DEBUG |
- cmp(scratch, Operand::Zero()); |
- Check(ne, kWeShouldNotHaveAnEmptyLexicalContext); |
-#endif |
- |
- // Load the native context of the current context. |
- ldr(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. |
- ldr(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. |
- ldr(ip, FieldMemOperand(holder_reg, JSGlobalProxy::kNativeContextOffset)); |
- cmp(scratch, Operand(ip)); |
- b(eq, &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. |
- mov(holder_reg, ip); // Move ip to its holding place. |
- LoadRoot(ip, Heap::kNullValueRootIndex); |
- cmp(holder_reg, ip); |
- Check(ne, kJSGlobalProxyContextShouldNotBeNull); |
- |
- ldr(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. |
- ldr(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; |
- |
- ldr(scratch, FieldMemOperand(scratch, token_offset)); |
- ldr(ip, FieldMemOperand(ip, token_offset)); |
- cmp(scratch, Operand(ip)); |
- b(ne, 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 |