PPC64: Fix return value checks for generated regexp code.

This fixes simulated debug-mode failures in the following tests:
  mjsunit/regexp-stack-overflow
  mjsunit/regress/regress-crbug-467047

R=mbrandy@us.ibm.com

BUG=

Review URL: https://codereview.chromium.org/1035003002

Cr-Commit-Position: refs/heads/master@{#27500}
This commit is contained in:
michael_dawson 2015-03-27 06:30:31 -07:00 committed by Commit bot
parent 28183eb0c0
commit fab0f042e6

View File

@ -2365,20 +2365,20 @@ void RegExpExecStub::Generate(MacroAssembler* masm) {
__ LeaveExitFrame(false, no_reg, true);
// r3: result
// r3: result (int32)
// subject: subject string (callee saved)
// regexp_data: RegExp data (callee saved)
// last_match_info_elements: Last match info elements (callee saved)
// Check the result.
Label success;
__ cmpi(r3, Operand(1));
__ cmpwi(r3, Operand(1));
// We expect exactly one result since we force the called regexp to behave
// as non-global.
__ beq(&success);
Label failure;
__ cmpi(r3, Operand(NativeRegExpMacroAssembler::FAILURE));
__ cmpwi(r3, Operand(NativeRegExpMacroAssembler::FAILURE));
__ beq(&failure);
__ cmpi(r3, Operand(NativeRegExpMacroAssembler::EXCEPTION));
__ cmpwi(r3, Operand(NativeRegExpMacroAssembler::EXCEPTION));
// If not exception it can only be retry. Handle that in the runtime system.
__ bne(&runtime);
// Result must now be exception. If there is no pending exception already a