Index: src/s390/macro-assembler-s390.cc |
diff --git a/src/s390/macro-assembler-s390.cc b/src/s390/macro-assembler-s390.cc |
index 97bade1f876ef51efc517a72e71475a8669e6bd0..66c04d2adc72b385adeaac2e338afa66b7b988ed 100644 |
--- a/src/s390/macro-assembler-s390.cc |
+++ b/src/s390/macro-assembler-s390.cc |
@@ -1502,87 +1502,6 @@ void MacroAssembler::PopStackHandler() { |
StoreP(r3, MemOperand(ip)); |
} |
-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)); |
- LoadRR(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 |
- CmpP(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)); |
- CompareRoot(holder_reg, Heap::kNativeContextMapRootIndex); |
- Check(eq, kJSGlobalObjectNativeContextShouldBeANativeContext); |
- pop(holder_reg); // Restore holder. |
- } |
- |
- // Check if both contexts are the same. |
- LoadP(ip, FieldMemOperand(holder_reg, JSGlobalProxy::kNativeContextOffset)); |
- CmpP(scratch, ip); |
- beq(&same_contexts, Label::kNear); |
- |
- // Check the context is a native context. |
- if (emit_debug_code()) { |
- // TODO(119): avoid push(holder_reg)/pop(holder_reg) |
- // 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. |
- LoadRR(holder_reg, ip); // Move ip to its holding place. |
- CompareRoot(holder_reg, Heap::kNullValueRootIndex); |
- Check(ne, kJSGlobalProxyContextShouldNotBeNull); |
- |
- LoadP(holder_reg, FieldMemOperand(holder_reg, HeapObject::kMapOffset)); |
- CompareRoot(holder_reg, Heap::kNativeContextMapRootIndex); |
- 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)); |
- CmpP(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 |