Commit 484ee83d authored by erik.corry@gmail.com's avatar erik.corry@gmail.com

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
parent 2258704e
...@@ -277,7 +277,7 @@ void RegExpMacroAssemblerIA32::CheckNotBackReferenceIgnoreCase( ...@@ -277,7 +277,7 @@ void RegExpMacroAssemblerIA32::CheckNotBackReferenceIgnoreCase(
// Save register contents to make the registers available below. // Save register contents to make the registers available below.
__ push(edi); __ push(edi);
__ push(backtrack_stackpointer()); __ 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(edx, Operand(esi)); // Start of capture
__ add(edi, Operand(esi)); // Start of text to match against capture. __ add(edi, Operand(esi)); // Start of text to match against capture.
...@@ -348,9 +348,9 @@ void RegExpMacroAssemblerIA32::CheckNotBackReferenceIgnoreCase( ...@@ -348,9 +348,9 @@ void RegExpMacroAssemblerIA32::CheckNotBackReferenceIgnoreCase(
__ add(edi, Operand(ecx)); __ add(edi, Operand(ecx));
__ mov(Operand(esp, 2 * kPointerSize), edi); __ mov(Operand(esp, 2 * kPointerSize), edi);
// Set byte_offset1. // Set byte_offset1.
// Start of capture, where eax already holds string-end negative offset. // Start of capture, where edx already holds string-end negative offset.
__ add(eax, Operand(ecx)); __ add(edx, Operand(ecx));
__ mov(Operand(esp, 1 * kPointerSize), eax); __ mov(Operand(esp, 1 * kPointerSize), edx);
// Set buffer. Original String** parameter to regexp code. // Set buffer. Original String** parameter to regexp code.
__ mov(eax, Operand(ebp, kInputBuffer)); __ mov(eax, Operand(ebp, kInputBuffer));
__ mov(Operand(esp, 0 * kPointerSize), eax); __ mov(Operand(esp, 0 * kPointerSize), eax);
...@@ -979,7 +979,6 @@ void RegExpMacroAssemblerIA32::WriteStackPointerToRegister(int reg) { ...@@ -979,7 +979,6 @@ void RegExpMacroAssemblerIA32::WriteStackPointerToRegister(int reg) {
static unibrow::Mapping<unibrow::Ecma262Canonicalize> canonicalize; static unibrow::Mapping<unibrow::Ecma262Canonicalize> canonicalize;
RegExpMacroAssemblerIA32::Result RegExpMacroAssemblerIA32::Execute( RegExpMacroAssemblerIA32::Result RegExpMacroAssemblerIA32::Execute(
Code* code, Code* code,
Address* input, Address* input,
......
...@@ -34,14 +34,6 @@ bugs: FAIL ...@@ -34,14 +34,6 @@ bugs: FAIL
# too long to run in debug mode on ARM. # too long to run in debug mode on ARM.
fuzz-natives: PASS, SKIP if ($mode == release || $arch == 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 ] [ $arch == arm ]
# Slow tests which times out in debug mode. # Slow tests which times out in debug mode.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment