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
-~----------~----~----~----~------~----~------~--~---

Reply via email to