__ 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);
}
__ 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;
}
void RegExpMacroAssemblerIA32::GoTo(Label* to) {
- __ jmp(to);
+ BranchOrBacktrack(no_condition, to);
}
if (cp_offset == 0) {
__ mov(register_location(reg), edi);
} else {
- __ lea(eax, Operand(edi, cp_offset));
+ __ lea(eax, Operand(edi, cp_offset * char_size()));
__ mov(register_location(reg), eax);
}
}