Add constant folding for OPCODE_ROTATE_LEFT

This commit is contained in:
chss95cs@gmail.com
2019-08-03 13:26:54 -07:00
committed by Gliniak
parent 3ad80810b5
commit 3675b3860a
3 changed files with 32 additions and 1 deletions

View File

@@ -712,7 +712,14 @@ bool ConstantPropagationPass::Run(HIRBuilder* builder, bool& result) {
result = true;
}
break;
// TODO(benvanik): ROTATE_LEFT
case OPCODE_ROTATE_LEFT:
if (i->src1.value->IsConstant() && i->src2.value->IsConstant()) {
v->set_from(i->src1.value);
v->RotateLeft(i->src2.value);
i->Remove();
result = true;
}
break;
case OPCODE_BYTE_SWAP:
if (i->src1.value->IsConstant()) {
v->set_from(i->src1.value);