From 76cfa333beca458039740752a439bb96c4c20191 Mon Sep 17 00:00:00 2001 From: bjorn3 Date: Fri, 20 Dec 2019 12:24:48 +0100 Subject: [PATCH] Fix init and uninit intrinsics for u/i128 --- src/intrinsics.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/intrinsics.rs b/src/intrinsics.rs index 80049a2a55f1..e05d32ffd796 100644 --- a/src/intrinsics.rs +++ b/src/intrinsics.rs @@ -615,6 +615,10 @@ pub fn codegen_intrinsic_call<'tcx>( let clif_ty = fx.clif_type(layout.ty).unwrap(); let val = match clif_ty { types::I8 | types::I16 | types::I32 | types::I64 => fx.bcx.ins().iconst(clif_ty, 0), + types::I128 => { + let zero = fx.bcx.ins().iconst(types::I64, 0); + fx.bcx.ins().iconcat(zero, zero) + } types::F32 => { let zero = fx.bcx.ins().iconst(types::I32, 0); fx.bcx.ins().bitcast(types::F32, zero) @@ -647,6 +651,11 @@ pub fn codegen_intrinsic_call<'tcx>( let clif_ty = fx.clif_type(layout.ty).unwrap(); let val = match clif_ty { types::I8 | types::I16 | types::I32 | types::I64 => fx.bcx.ins().iconst(clif_ty, 42), + types::I128 => { + let zero = fx.bcx.ins().iconst(types::I64, 0); + let fourty_two = fx.bcx.ins().iconst(types::I64, 42); + fx.bcx.ins().iconcat(fourty_two, zero) + } types::F32 => { let zero = fx.bcx.ins().iconst(types::I32, 0xdeadbeef); fx.bcx.ins().bitcast(types::F32, zero)