Reverting 2635

Review URL: http://codereview.chromium.org/1940001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
sandholm@chromium.org 2010-05-04 08:41:26 +00:00
parent 1f9fef3d51
commit 5affd79e77

View File

@ -1102,19 +1102,22 @@ void RegExpMacroAssemblerIA32::BranchOrBacktrack(Condition condition,
void RegExpMacroAssemblerIA32::SafeCall(Label* to) { void RegExpMacroAssemblerIA32::SafeCall(Label* to) {
__ call(to); Label return_to;
__ push(Immediate::CodeRelativeOffset(&return_to));
__ jmp(to);
__ bind(&return_to);
} }
void RegExpMacroAssemblerIA32::SafeReturn() { void RegExpMacroAssemblerIA32::SafeReturn() {
__ add(Operand(esp, 0), Immediate(masm_->CodeObject())); __ pop(ebx);
__ ret(0); __ add(Operand(ebx), Immediate(masm_->CodeObject()));
__ jmp(Operand(ebx));
} }
void RegExpMacroAssemblerIA32::SafeCallTarget(Label* name) { void RegExpMacroAssemblerIA32::SafeCallTarget(Label* name) {
__ bind(name); __ bind(name);
__ sub(Operand(esp, 0), Immediate(masm_->CodeObject()));
} }