From 4633832960e0b6b58666b7870778a1623d60f62a Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Wed, 23 Jan 2013 21:53:54 +0100 Subject: [PATCH] Fix wrong constant folding Change-Id: I8c48ae0597c41c69c77d56cba4c6be738d5d282b Reviewed-by: Simon Hausmann --- qv4codegen.cpp | 4 ++-- tests/TestExpectations | 11 ----------- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/qv4codegen.cpp b/qv4codegen.cpp index 46a228e..1f68255 100644 --- a/qv4codegen.cpp +++ b/qv4codegen.cpp @@ -631,9 +631,9 @@ IR::Expr *Codegen::binop(IR::AluOp op, IR::Expr *left, IR::Expr *right) case IR::OpMod: return _block->CONST(IR::NumberType, ::fmod(c1->value, c2->value)); case IR::OpMul: return _block->CONST(IR::NumberType, c1->value * c2->value); case IR::OpOr: return _block->CONST(IR::NumberType, c1->value ? c1->value : c2->value); - case IR::OpRShift: return _block->CONST(IR::NumberType, VM::Value::toInt32(c1->value) << (VM::Value::toUInt32(c2->value) & 0x1f)); + case IR::OpRShift: return _block->CONST(IR::NumberType, VM::Value::toInt32(c1->value) >> (VM::Value::toUInt32(c2->value) & 0x1f)); case IR::OpSub: return _block->CONST(IR::NumberType, c1->value - c2->value); - case IR::OpURShift: return _block->CONST(IR::NumberType,VM::Value::toUInt32(c1->value) << (VM::Value::toUInt32(c2->value) & 0x1f)); + case IR::OpURShift: return _block->CONST(IR::NumberType,VM::Value::toUInt32(c1->value) >> (VM::Value::toUInt32(c2->value) & 0x1f)); case IR::OpInstanceof: case IR::OpIn: diff --git a/tests/TestExpectations b/tests/TestExpectations index 0db14a4..6cdedd2 100644 --- a/tests/TestExpectations +++ b/tests/TestExpectations @@ -92,10 +92,6 @@ S11.7.1_A2.4_T1 failing S11.7.1_A2.4_T3 failing S11.7.2_A2.4_T1 failing S11.7.2_A2.4_T3 failing -S11.7.2_A3_T1.2 failing -S11.7.2_A4_T3 failing -S11.7.2_A4_T4 failing -S11.7.2_A5.2_T1 failing S11.6.1_A2.4_T1 failing S11.6.1_A2.4_T3 failing S11.6.2_A2.4_T1 failing @@ -106,12 +102,6 @@ S11.8.3_A2.4_T1 failing S11.8.3_A2.4_T3 failing S11.7.3_A2.4_T1 failing S11.7.3_A2.4_T3 failing -S11.7.3_A3_T1.2 failing -S11.7.3_A4_T1 failing -S11.7.3_A4_T2 failing -S11.7.3_A4_T3 failing -S11.7.3_A4_T4 failing -S11.7.3_A5.2_T1 failing S11.8.1_A2.4_T1 failing S11.8.1_A2.4_T3 failing S11.8.4_A2.4_T1 failing @@ -153,7 +143,6 @@ S12.11_A1_T1 failing S12.11_A1_T2 failing S12.11_A1_T3 failing S12.11_A1_T4 failing -S12.13_A3_T3 failing 12.14-13 failing 12.10-0-3 failing S12.10_A1.11_T1 failing -- 2.7.4