Sync from rust 34e6673a0473e90ef01a18eb575392c9e3859747
This commit is contained in:
commit
83222f18f4
@ -420,9 +420,9 @@ pub(crate) fn codegen_terminator_call<'tcx>(
|
|||||||
};
|
};
|
||||||
|
|
||||||
let extra_args = &args[fn_sig.inputs().skip_binder().len()..];
|
let extra_args = &args[fn_sig.inputs().skip_binder().len()..];
|
||||||
let extra_args = fx
|
let extra_args = fx.tcx.mk_type_list_from_iter(
|
||||||
.tcx
|
extra_args.iter().map(|op_arg| fx.monomorphize(op_arg.ty(fx.mir, fx.tcx))),
|
||||||
.mk_type_list(extra_args.iter().map(|op_arg| fx.monomorphize(op_arg.ty(fx.mir, fx.tcx))));
|
);
|
||||||
let fn_abi = if let Some(instance) = instance {
|
let fn_abi = if let Some(instance) = instance {
|
||||||
RevealAllLayoutCx(fx.tcx).fn_abi_of_instance(instance, extra_args)
|
RevealAllLayoutCx(fx.tcx).fn_abi_of_instance(instance, extra_args)
|
||||||
} else {
|
} else {
|
||||||
|
@ -41,7 +41,7 @@ pub(crate) fn maybe_codegen<'tcx>(
|
|||||||
fx.layout_of(if is_signed { fx.tcx.types.i128 } else { fx.tcx.types.u128 }),
|
fx.layout_of(if is_signed { fx.tcx.types.i128 } else { fx.tcx.types.u128 }),
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
let out_ty = fx.tcx.intern_tup(&[lhs.layout().ty, fx.tcx.types.bool]);
|
let out_ty = fx.tcx.mk_tup(&[lhs.layout().ty, fx.tcx.types.bool]);
|
||||||
let oflow = CPlace::new_stack_slot(fx, fx.layout_of(fx.tcx.types.i32));
|
let oflow = CPlace::new_stack_slot(fx, fx.layout_of(fx.tcx.types.i32));
|
||||||
let lhs = lhs.load_scalar(fx);
|
let lhs = lhs.load_scalar(fx);
|
||||||
let rhs = rhs.load_scalar(fx);
|
let rhs = rhs.load_scalar(fx);
|
||||||
@ -63,7 +63,7 @@ pub(crate) fn maybe_codegen<'tcx>(
|
|||||||
}
|
}
|
||||||
BinOp::Add | BinOp::Sub | BinOp::Mul => {
|
BinOp::Add | BinOp::Sub | BinOp::Mul => {
|
||||||
assert!(checked);
|
assert!(checked);
|
||||||
let out_ty = fx.tcx.intern_tup(&[lhs.layout().ty, fx.tcx.types.bool]);
|
let out_ty = fx.tcx.mk_tup(&[lhs.layout().ty, fx.tcx.types.bool]);
|
||||||
let out_place = CPlace::new_stack_slot(fx, fx.layout_of(out_ty));
|
let out_place = CPlace::new_stack_slot(fx, fx.layout_of(out_ty));
|
||||||
let param_types = vec![
|
let param_types = vec![
|
||||||
AbiParam::special(fx.pointer_type, ArgumentPurpose::StructReturn),
|
AbiParam::special(fx.pointer_type, ArgumentPurpose::StructReturn),
|
||||||
|
@ -191,7 +191,7 @@ fn llvm_add_sub<'tcx>(
|
|||||||
// carry0 | carry1 -> carry or borrow respectively
|
// carry0 | carry1 -> carry or borrow respectively
|
||||||
let cb_out = fx.bcx.ins().bor(cb0, cb1);
|
let cb_out = fx.bcx.ins().bor(cb0, cb1);
|
||||||
|
|
||||||
let layout = fx.layout_of(fx.tcx.intern_tup(&[fx.tcx.types.u8, fx.tcx.types.u64]));
|
let layout = fx.layout_of(fx.tcx.mk_tup(&[fx.tcx.types.u8, fx.tcx.types.u64]));
|
||||||
let val = CValue::by_val_pair(cb_out, c, layout);
|
let val = CValue::by_val_pair(cb_out, c, layout);
|
||||||
ret.write_cvalue(fx, val);
|
ret.write_cvalue(fx, val);
|
||||||
}
|
}
|
||||||
|
@ -119,7 +119,7 @@ pub(crate) fn maybe_create_entry_wrapper(
|
|||||||
tcx,
|
tcx,
|
||||||
ParamEnv::reveal_all(),
|
ParamEnv::reveal_all(),
|
||||||
report.def_id,
|
report.def_id,
|
||||||
tcx.intern_substs(&[GenericArg::from(main_ret_ty)]),
|
tcx.mk_substs(&[GenericArg::from(main_ret_ty)]),
|
||||||
)
|
)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
@ -146,7 +146,7 @@ pub(crate) fn maybe_create_entry_wrapper(
|
|||||||
tcx,
|
tcx,
|
||||||
ParamEnv::reveal_all(),
|
ParamEnv::reveal_all(),
|
||||||
start_def_id,
|
start_def_id,
|
||||||
tcx.intern_substs(&[main_ret_ty.into()]),
|
tcx.mk_substs(&[main_ret_ty.into()]),
|
||||||
)
|
)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
|
@ -289,7 +289,7 @@ pub(crate) fn codegen_checked_int_binop<'tcx>(
|
|||||||
_ => bug!("binop {:?} on checked int/uint lhs: {:?} rhs: {:?}", bin_op, in_lhs, in_rhs),
|
_ => bug!("binop {:?} on checked int/uint lhs: {:?} rhs: {:?}", bin_op, in_lhs, in_rhs),
|
||||||
};
|
};
|
||||||
|
|
||||||
let out_layout = fx.layout_of(fx.tcx.intern_tup(&[in_lhs.layout().ty, fx.tcx.types.bool]));
|
let out_layout = fx.layout_of(fx.tcx.mk_tup(&[in_lhs.layout().ty, fx.tcx.types.bool]));
|
||||||
CValue::by_val_pair(res, has_overflow, out_layout)
|
CValue::by_val_pair(res, has_overflow, out_layout)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user