| Index: src/arm/lithium-codegen-arm.cc | 
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc | 
| index 88169a4537240ca49a574a098149e10f8637b145..f7bcd44c53bf8aaa042df8967048c7b7c2d1c383 100644 | 
| --- a/src/arm/lithium-codegen-arm.cc | 
| +++ b/src/arm/lithium-codegen-arm.cc | 
| @@ -2475,6 +2475,39 @@ void LCodeGen::DoDeferredInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr, | 
| Label before_push_delta; | 
| __ bind(&before_push_delta); | 
| __ BlockConstPoolFor(kAdditionalDelta); | 
| +  if (delta * kPointerSize >= (1<<12)) { | 
| +    // 12 is according to kLdrOffsetMask in MacroAssembler::GetRelocatedValueLocation. | 
| +    // A value of delta may be as high as 20560 when optimizing xSerializeObject_ from mirror-debugger.js for mirror-object.js test. | 
| + | 
| +//    26 v8::internal::LCodeGen::DoDeferredInstanceOfKnownGlobal() /home/prybin/src-v8-6/src/arm/lithium-codegen-arm.cc:2481 0x0836ea63 | 
| +//    25 v8::internal::LCodeGen::DeferredInstanceOfKnownGlobal::Generate() /home/prybin/src-v8-6/src/arm/lithium-codegen-arm.cc:2378 0x0836e31b | 
| +//    24 v8::internal::LCodeGen::GenerateDeferredCode() /home/prybin/src-v8-6/src/arm/lithium-codegen-arm.cc:252 0x08363dd3 | 
| +//    23 v8::internal::LCodeGen::GenerateCode() /home/prybin/src-v8-6/src/arm/lithium-codegen-arm.cc:82 0x083630de | 
| +//    22 v8::internal::LChunk::Codegen() /home/prybin/src-v8-6/src/lithium.cc:426 0x081aba71 | 
| +//    21 v8::internal::OptimizingCompiler::GenerateAndInstallCode() /home/prybin/src-v8-6/src/compiler.cc:375 0x080aa5a4 | 
| +//    20 v8::internal::MakeCrankshaftCode() /home/prybin/src-v8-6/src/compiler.cc:213 0x080a994b | 
| +//    19 v8::internal::GenerateCode() /home/prybin/src-v8-6/src/compiler.cc:388 0x080aa661 | 
| +//    18 v8::internal::MakeCode() /home/prybin/src-v8-6/src/compiler.cc:404 0x080aa6b9 | 
| +//    17 v8::internal::Compiler::CompileLazy() /home/prybin/src-v8-6/src/compiler.cc:803 0x080ad265 | 
| +//    16 v8::internal::CompileLazyHelper() /home/prybin/src-v8-6/src/objects.cc:7356 0x081f0cb4 | 
| +//    15 v8::internal::JSFunction::CompileOptimized() /home/prybin/src-v8-6/src/objects.cc:7459 0x081f1676 | 
| +//    14 v8::internal::Runtime_LazyRecompile() /home/prybin/src-v8-6/src/runtime.cc:8293 0x08274b0e | 
| +//    13 v8::internal::Simulator::SoftwareInterrupt() /home/prybin/src-v8-6/src/arm/simulator-arm.cc:1844 0x0839e9a3 | 
| +//    12 v8::internal::Simulator::DecodeType7() /home/prybin/src-v8-6/src/arm/simulator-arm.cc:2670 0x083a0da1 | 
| +//    11 v8::internal::Simulator::InstructionDecode() /home/prybin/src-v8-6/src/arm/simulator-arm.cc:3235 0x083a278f | 
| +//    10 v8::internal::Simulator::Execute() /home/prybin/src-v8-6/src/arm/simulator-arm.cc:3266 0x083a2880 | 
| +//    9 v8::internal::Simulator::Call() /home/prybin/src-v8-6/src/arm/simulator-arm.cc:3346 0x083a2c1f | 
| +//    8 v8::internal::Invoke() /home/prybin/src-v8-6/src/execution.cc:118 0x080dce72 | 
| +//    7 v8::internal::Execution::Call() /home/prybin/src-v8-6/src/execution.cc:179 0x080dd388 | 
| +//    6 v8::Script::Run() /home/prybin/src-v8-6/src/api.cc:1612 0x080668ae | 
| +//    5 v8::Shell::ExecuteString() /home/prybin/src-v8-6/src/d8.cc:166 0x0804ba03 | 
| +//    4 v8::SourceGroup::Execute() /home/prybin/src-v8-6/src/d8.cc:1550 0x08052b91 | 
| +//    3 v8::Shell::RunMain() /home/prybin/src-v8-6/src/d8.cc:1797 0x0805360a | 
| +//    2 v8::Shell::Main() /home/prybin/src-v8-6/src/d8.cc:1851 0x0805387a | 
| +//    1 main() /home/prybin/src-v8-6/src/d8.cc:1906 0x080539e6 | 
| + | 
| +    FATAL("delta value is too large"); | 
| +  } | 
| __ mov(temp, Operand(delta * kPointerSize)); | 
| __ StoreToSafepointRegisterSlot(temp, temp); | 
| CallCodeGeneric(stub.GetCode(), | 
|  |