Skip to content

Commit 3df425e

Browse files
committed
bswap.i128 is now supported
1 parent 83dc7d1 commit 3df425e

File tree

1 file changed

+4
-10
lines changed

1 file changed

+4
-10
lines changed

src/intrinsics/mod.rs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -636,16 +636,10 @@ fn codegen_regular_intrinsic_call<'tcx>(
636636
intrinsic_args!(fx, args => (arg); intrinsic);
637637
let val = arg.load_scalar(fx);
638638

639-
let res = match fx.bcx.func.dfg.value_type(val) {
640-
types::I8 => val,
641-
types::I128 => {
642-
// FIXME(bytecodealliance/wasmtime#1092) bswap.i128 is not yet implemented
643-
let (lsb, msb) = fx.bcx.ins().isplit(val);
644-
let lsb_swap = fx.bcx.ins().bswap(lsb);
645-
let msb_swap = fx.bcx.ins().bswap(msb);
646-
fx.bcx.ins().iconcat(msb_swap, lsb_swap)
647-
}
648-
_ => fx.bcx.ins().bswap(val),
639+
let res = if fx.bcx.func.dfg.value_type(val) == types::I8 {
640+
val
641+
} else {
642+
fx.bcx.ins().bswap(val)
649643
};
650644
let res = CValue::by_val(res, arg.layout());
651645
ret.write_cvalue(fx, res);

0 commit comments

Comments
 (0)