Commit fab0f042 authored by michael_dawson's avatar michael_dawson Committed by Commit bot

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}
parent 28183eb0
...@@ -2365,20 +2365,20 @@ void RegExpExecStub::Generate(MacroAssembler* masm) { ...@@ -2365,20 +2365,20 @@ void RegExpExecStub::Generate(MacroAssembler* masm) {
__ LeaveExitFrame(false, no_reg, true); __ LeaveExitFrame(false, no_reg, true);
// r3: result // r3: result (int32)
// subject: subject string (callee saved) // subject: subject string (callee saved)
// regexp_data: RegExp data (callee saved) // regexp_data: RegExp data (callee saved)
// last_match_info_elements: Last match info elements (callee saved) // last_match_info_elements: Last match info elements (callee saved)
// Check the result. // Check the result.
Label success; Label success;
__ cmpi(r3, Operand(1)); __ cmpwi(r3, Operand(1));
// We expect exactly one result since we force the called regexp to behave // We expect exactly one result since we force the called regexp to behave
// as non-global. // as non-global.
__ beq(&success); __ beq(&success);
Label failure; Label failure;
__ cmpi(r3, Operand(NativeRegExpMacroAssembler::FAILURE)); __ cmpwi(r3, Operand(NativeRegExpMacroAssembler::FAILURE));
__ beq(&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. // If not exception it can only be retry. Handle that in the runtime system.
__ bne(&runtime); __ bne(&runtime);
// Result must now be exception. If there is no pending exception already a // Result must now be exception. If there is no pending exception already a
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment