use Compiler::truncateThenExtend in more places

This commit is contained in:
Joshua Warner 2014-05-01 11:47:48 -06:00
parent 26d8e8aa1f
commit 4c4cc49510
2 changed files with 7 additions and 15 deletions

View File

@ -2652,6 +2652,7 @@ class MyCompiler: public Compiler {
assert(&c, dstType.size() >= TargetBytesPerWord);
assert(&c, srcType.flavor() == srcSelectType.flavor());
assert(&c, srcType.flavor() == dstType.flavor());
assert(&c, srcType == srcSelectType);
Value* dst = value(&c, static_cast<Value*>(src)->type);
appendMove(&c,

View File

@ -4807,19 +4807,13 @@ compile(MyThread* t, Frame* initialFrame, unsigned initialIp,
} break;
case i2b: {
frame->pushInt(c->load(ir::SignExtend,
types.address,
types.i1,
frame->popInt(),
types.address));
frame->pushInt(c->truncateThenExtend(
ir::SignExtend, types.address, types.i1, frame->popInt()));
} break;
case i2c: {
frame->pushInt(c->load(ir::ZeroExtend,
types.address,
types.i2,
frame->popInt(),
types.address));
frame->pushInt(c->truncateThenExtend(
ir::ZeroExtend, types.address, types.i2, frame->popInt()));
} break;
case i2d: {
@ -4836,11 +4830,8 @@ compile(MyThread* t, Frame* initialFrame, unsigned initialIp,
break;
case i2s: {
frame->pushInt(c->load(ir::SignExtend,
types.address,
types.i2,
frame->popInt(),
types.address));
frame->pushInt(c->truncateThenExtend(
ir::SignExtend, types.address, types.i2, frame->popInt()));
} break;
case iadd: