mirror of
https://github.com/corda/corda.git
synced 2025-01-06 05:04:20 +00:00
use Compiler::truncateThenExtend in more places
This commit is contained in:
parent
26d8e8aa1f
commit
4c4cc49510
@ -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,
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user