gen_wasm: fix type error in i64 shift operators

This commit is contained in:
Brian Carroll 2022-12-10 00:48:22 +00:00
parent deab384d02
commit 74bb8cc843
No known key found for this signature in database
GPG key ID: 5C7B2EC4101703C0

View file

@ -1625,7 +1625,10 @@ impl<'a> LowLevelCall<'a> {
.load_symbols(&mut backend.code_builder, &[num, bits]);
match CodeGenNumType::from(self.ret_layout) {
I32 => backend.code_builder.i32_shl(),
I64 => backend.code_builder.i64_shl(),
I64 => {
backend.code_builder.i64_extend_u_i32();
backend.code_builder.i64_shl();
}
I128 => todo!("{:?} for I128", self.lowlevel),
_ => panic_ret_type(),
}
@ -1672,6 +1675,7 @@ impl<'a> LowLevelCall<'a> {
backend
.storage
.load_symbols(&mut backend.code_builder, &[num, bits]);
backend.code_builder.i64_extend_u_i32();
backend.code_builder.i64_shr_s();
}
I128 => todo!("{:?} for I128", self.lowlevel),
@ -1714,6 +1718,7 @@ impl<'a> LowLevelCall<'a> {
backend
.storage
.load_symbols(&mut backend.code_builder, &[num, bits]);
backend.code_builder.i64_extend_u_i32();
backend.code_builder.i64_shr_u();
}
I128 => todo!("{:?} for I128", self.lowlevel),