From: erik.corry@gmail.com Date: Thu, 23 Apr 2009 07:52:38 +0000 (+0000) Subject: 2nd try at fixing coverage of inline keyed access on IA32. X-Git-Tag: upstream/4.7.83~24256 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e5a1973d3cb0c42ced34d22701f2b608dfc70d80;p=platform%2Fupstream%2Fv8.git 2nd try at fixing coverage of inline keyed access on IA32. Review URL: http://codereview.chromium.org/92067 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/codegen-ia32.cc b/src/codegen-ia32.cc index fb2f8bf..2d6fe83 100644 --- a/src/codegen-ia32.cc +++ b/src/codegen-ia32.cc @@ -5273,12 +5273,14 @@ void DeferredReferenceGetKeyedValue::Generate() { // instruction. ASSERT(value.is_register() && value.reg().is(eax)); // The delta from the start of the map-compare instruction to the - // test eax instruction. We use masm_ directly here instead of the + // test instruction. We use masm_ directly here instead of the // double underscore macro because the macro sometimes uses macro // expansion to turn into something that can't return a value. This // is encountered when doing generated code coverage tests. int delta_to_patch_site = masm_->SizeOfCodeGeneratedSince(patch_site()); - __ test(value.reg(), Immediate(-delta_to_patch_site)); + // Here we use masm_-> instead of the double underscore macro because this + // is the instruction that gets patched and coverage code gets in the way. + masm_->test(value.reg(), Immediate(-delta_to_patch_site)); __ IncrementCounter(&Counters::keyed_load_inline_miss, 1); // The receiver and key were spilled by the call, so their state as