Reviewers: Lasse Reichstein, Description: Fixes to IA32 code generator to cope with new code generation machinery.
Please review this at http://codereview.chromium.org/13244 SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/regexp-macro-assembler-ia32.cc Index: src/regexp-macro-assembler-ia32.cc =================================================================== --- src/regexp-macro-assembler-ia32.cc (revision 930) +++ src/regexp-macro-assembler-ia32.cc (working copy) @@ -150,7 +150,7 @@ __ movzx_b(ebx, Operand(ecx, ebx, times_1, 0)); __ and_(eax, (1<<3)-1); __ bt(Operand(ebx), eax); - __ j(carry, on_zero); + BranchOrBacktrack(carry, on_zero); } @@ -203,7 +203,7 @@ __ cmpw(Operand(esi, edi, times_1, byte_offset + i * sizeof(uc16)), Immediate(str[i])); } - __ j(not_equal, on_failure); + BranchOrBacktrack(not_equal, on_failure); } return; } @@ -574,7 +574,7 @@ void RegExpMacroAssemblerIA32::GoTo(Label* to) { - __ jmp(to); + BranchOrBacktrack(no_condition, to); } @@ -662,7 +662,12 @@ if (cp_offset == 0) { __ mov(register_location(reg), edi); } else { - __ lea(eax, Operand(edi, cp_offset)); + if (mode_ == ASCII) { + __ lea(eax, Operand(edi, cp_offset)); + } else { + ASSERT(mode_ == UC16); + __ lea(eax, Operand(edi, 2 * cp_offset)); + } __ mov(register_location(reg), eax); } } --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
