From: mstarzinger@chromium.org Date: Wed, 19 Oct 2011 11:44:38 +0000 (+0000) Subject: MIPS: port Fix evaluation order of GT and LTE operators. X-Git-Tag: upstream/4.7.83~18161 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=acc02637558ea4fb158af261aaae29e051b06339;p=platform%2Fupstream%2Fv8.git MIPS: port Fix evaluation order of GT and LTE operators. Port r9641 (2876c37) Note that this port does not include crankshaft portions of this commit. They have been included in today's update to http://codereview.chromium.org/7934002/ Also, this fixes a changed function prototype for: void Deoptimizer::RevertStackCheckCodeAt() BUG= TEST= Review URL: http://codereview.chromium.org/8348028 Patch from Paul Lind . git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/src/mips/deoptimizer-mips.cc b/src/mips/deoptimizer-mips.cc index 280b8cb..92d7edd 100644 --- a/src/mips/deoptimizer-mips.cc +++ b/src/mips/deoptimizer-mips.cc @@ -61,7 +61,8 @@ void Deoptimizer::PatchStackCheckCodeAt(Code* unoptimized_code, } -void Deoptimizer::RevertStackCheckCodeAt(Address pc_after, +void Deoptimizer::RevertStackCheckCodeAt(Code* unoptimized_code, + Address pc_after, Code* check_code, Code* replacement_code) { UNIMPLEMENTED(); diff --git a/src/mips/full-codegen-mips.cc b/src/mips/full-codegen-mips.cc index a012140..e773855 100644 --- a/src/mips/full-codegen-mips.cc +++ b/src/mips/full-codegen-mips.cc @@ -4100,36 +4100,26 @@ void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) { case Token::EQ_STRICT: case Token::EQ: cc = eq; - __ mov(a0, result_register()); - __ pop(a1); break; case Token::LT: cc = lt; - __ mov(a0, result_register()); - __ pop(a1); break; case Token::GT: - // Reverse left and right sides to obtain ECMA-262 conversion order. - cc = lt; - __ mov(a1, result_register()); - __ pop(a0); + cc = gt; break; case Token::LTE: - // Reverse left and right sides to obtain ECMA-262 conversion order. - cc = ge; - __ mov(a1, result_register()); - __ pop(a0); + cc = le; break; case Token::GTE: cc = ge; - __ mov(a0, result_register()); - __ pop(a1); break; case Token::IN: case Token::INSTANCEOF: default: UNREACHABLE(); } + __ mov(a0, result_register()); + __ pop(a1); bool inline_smi_code = ShouldInlineSmiCase(op); JumpPatchSite patch_site(masm_); diff --git a/src/mips/ic-mips.cc b/src/mips/ic-mips.cc index fb33eb6..438a0ec 100644 --- a/src/mips/ic-mips.cc +++ b/src/mips/ic-mips.cc @@ -1560,11 +1560,9 @@ Condition CompareIC::ComputeCondition(Token::Value op) { case Token::LT: return lt; case Token::GT: - // Reverse left and right operands to obtain ECMA-262 conversion order. - return lt; + return gt; case Token::LTE: - // Reverse left and right operands to obtain ECMA-262 conversion order. - return ge; + return le; case Token::GTE: return ge; default: