Removed superfluous deopt for ROR on ia32.
authorsvenpanne@chromium.org <svenpanne@chromium.org>
Tue, 23 Sep 2014 08:06:00 +0000 (08:06 +0000)
committersvenpanne@chromium.org <svenpanne@chromium.org>
Tue, 23 Sep 2014 08:06:00 +0000 (08:06 +0000)
We only synthesize a ROR when we have an expression with a toplevel
'|', which returns a signed value by definition, so deopting on
negative values is not needed. ia32 was the only platform where this
was done, all other didn't have the check.

R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/ia32/lithium-codegen-ia32.cc

index b675f43..8490ff9 100644 (file)
@@ -1616,10 +1616,6 @@ void LCodeGen::DoShiftI(LShiftI* instr) {
     switch (instr->op()) {
       case Token::ROR:
         __ ror_cl(ToRegister(left));
-        if (instr->can_deopt()) {
-          __ test(ToRegister(left), ToRegister(left));
-          DeoptimizeIf(sign, instr);
-        }
         break;
       case Token::SAR:
         __ sar_cl(ToRegister(left));