From: vegorov@chromium.org Date: Wed, 5 Oct 2011 10:50:24 +0000 (+0000) Subject: Fix Kraken segfaults on ARM. X-Git-Tag: upstream/4.7.83~18283 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a7c373c2d20f2ac935f4dacc61eef9fc6dd1ae09;p=platform%2Fupstream%2Fv8.git Fix Kraken segfaults on ARM. DoStoreKeyedFastElement was passing incorrect slot address (off by 1) to the RecordWrite. R=erik.corry@gmail.com BUG=v8:1742 Review URL: http://codereview.chromium.org/8139026 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc index f6750a299..70ef88481 100644 --- a/src/arm/lithium-codegen-arm.cc +++ b/src/arm/lithium-codegen-arm.cc @@ -3363,7 +3363,7 @@ void LCodeGen::DoStoreKeyedFastElement(LStoreKeyedFastElement* instr) { if (instr->hydrogen()->NeedsWriteBarrier()) { // Compute address of modified element and store it into key register. - __ add(key, scratch, Operand(FixedArray::kHeaderSize)); + __ add(key, scratch, Operand(FixedArray::kHeaderSize - kHeapObjectTag)); __ RecordWrite(elements, key, value, kLRHasBeenSaved, kSaveFPRegs); } }