From: erik.corry@gmail.com Date: Wed, 4 Feb 2009 12:20:27 +0000 (+0000) Subject: Fix crash-bug in code generation for case independent 16 bit backreferences. X-Git-Tag: upstream/4.7.83~24698 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=484ee83dd975872f981e30ab52e5506f3b6af0d5;p=platform%2Fupstream%2Fv8.git Fix crash-bug in code generation for case independent 16 bit backreferences. Review URL: http://codereview.chromium.org/21042 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/regexp-macro-assembler-ia32.cc b/src/regexp-macro-assembler-ia32.cc index c5380b3e7..8159f59c0 100644 --- a/src/regexp-macro-assembler-ia32.cc +++ b/src/regexp-macro-assembler-ia32.cc @@ -277,7 +277,7 @@ void RegExpMacroAssemblerIA32::CheckNotBackReferenceIgnoreCase( // Save register contents to make the registers available below. __ push(edi); __ push(backtrack_stackpointer()); - // After this, the eax, ebx, ecx, edx and edi registers are available. + // After this, the eax, ecx, and edi registers are available. __ add(edx, Operand(esi)); // Start of capture __ add(edi, Operand(esi)); // Start of text to match against capture. @@ -348,9 +348,9 @@ void RegExpMacroAssemblerIA32::CheckNotBackReferenceIgnoreCase( __ add(edi, Operand(ecx)); __ mov(Operand(esp, 2 * kPointerSize), edi); // Set byte_offset1. - // Start of capture, where eax already holds string-end negative offset. - __ add(eax, Operand(ecx)); - __ mov(Operand(esp, 1 * kPointerSize), eax); + // Start of capture, where edx already holds string-end negative offset. + __ add(edx, Operand(ecx)); + __ mov(Operand(esp, 1 * kPointerSize), edx); // Set buffer. Original String** parameter to regexp code. __ mov(eax, Operand(ebp, kInputBuffer)); __ mov(Operand(esp, 0 * kPointerSize), eax); @@ -979,7 +979,6 @@ void RegExpMacroAssemblerIA32::WriteStackPointerToRegister(int reg) { static unibrow::Mapping canonicalize; - RegExpMacroAssemblerIA32::Result RegExpMacroAssemblerIA32::Execute( Code* code, Address* input, diff --git a/test/mjsunit/mjsunit.status b/test/mjsunit/mjsunit.status index 27dfc1491..090208e86 100644 --- a/test/mjsunit/mjsunit.status +++ b/test/mjsunit/mjsunit.status @@ -34,14 +34,6 @@ bugs: FAIL # too long to run in debug mode on ARM. fuzz-natives: PASS, SKIP if ($mode == release || $arch == arm) -# This test features unsupported by JSCRE. Change to PASS when -# no longer using JSCRE. -regexp-UC16: PASS || FAIL - -# These tests pass with irregexp but fail with jscre -regress/regress-176: PASS || FAIL -regexp-loop-capture: PASS || FAIL - [ $arch == arm ] # Slow tests which times out in debug mode.