about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbjorn3 <17426603+bjorn3@users.noreply.github.com>2022-11-03 18:10:28 +0000
committerbjorn3 <17426603+bjorn3@users.noreply.github.com>2022-12-01 17:45:59 +0000
commit3df425e11e4cef5f9c4c08cd545db2bffdbb97bd (patch)
tree604b9cf328002c4fe37ece4a96ec768433e09830 /src
parent83dc7d1a123d2b2e0b0b84aa3d0ae6dc4a59fd4e (diff)
downloadrust-3df425e11e4cef5f9c4c08cd545db2bffdbb97bd.tar.gz
rust-3df425e11e4cef5f9c4c08cd545db2bffdbb97bd.zip
bswap.i128 is now supported
Diffstat (limited to 'src')
-rw-r--r--src/intrinsics/mod.rs14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/intrinsics/mod.rs b/src/intrinsics/mod.rs
index 76fc399097a..7a380acf798 100644
--- a/src/intrinsics/mod.rs
+++ b/src/intrinsics/mod.rs
@@ -636,16 +636,10 @@ fn codegen_regular_intrinsic_call<'tcx>(
             intrinsic_args!(fx, args => (arg); intrinsic);
             let val = arg.load_scalar(fx);
 
-            let res = match fx.bcx.func.dfg.value_type(val) {
-                types::I8 => val,
-                types::I128 => {
-                    // FIXME(bytecodealliance/wasmtime#1092) bswap.i128 is not yet implemented
-                    let (lsb, msb) = fx.bcx.ins().isplit(val);
-                    let lsb_swap = fx.bcx.ins().bswap(lsb);
-                    let msb_swap = fx.bcx.ins().bswap(msb);
-                    fx.bcx.ins().iconcat(msb_swap, lsb_swap)
-                }
-                _ => fx.bcx.ins().bswap(val),
+            let res = if fx.bcx.func.dfg.value_type(val) == types::I8 {
+                val
+            } else {
+                fx.bcx.ins().bswap(val)
             };
             let res = CValue::by_val(res, arg.layout());
             ret.write_cvalue(fx, res);