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 <plind44@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
mstarzinger@chromium.org 2011-10-19 11:44:38 +00:00
parent 2791cd5a2c
commit acc0263755
3 changed files with 8 additions and 19 deletions

View File

@ -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();

View File

@ -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_);

View File

@ -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: