Rustup to rustc 1.44.0-nightly (7ceebd98c 2020-03-17)

This commit is contained in:
bjorn3 2020-03-18 20:05:57 +01:00
parent 992fae08c4
commit d464169beb
3 changed files with 1 additions and 74 deletions

View file

@ -477,7 +477,6 @@ pub mod intrinsics {
pub fn min_align_of_val<T: ?::Sized>(val: &T) -> usize;
pub fn copy<T>(src: *const T, dst: *mut T, count: usize);
pub fn transmute<T, U>(e: T) -> U;
pub fn init<T>() -> T;
pub fn ctlz_nonzero<T>(x: T) -> T;
pub fn needs_drop<T>() -> bool;
pub fn bitreverse<T>(x: T) -> T;

View file

@ -1 +1 @@
nightly-2020-03-17
nightly-2020-03-18

View file

@ -611,78 +611,6 @@ pub fn codegen_intrinsic_call<'tcx>(
let dst_layout = fx.layout_of(dst_ty);
ret.write_cvalue(fx, CValue::by_ref(addr, dst_layout))
};
init, () {
let layout = ret.layout();
if layout.abi == Abi::Uninhabited {
crate::trap::trap_panic(fx, "[panic] Called intrinsic::init for uninhabited type.");
return;
}
match *ret.inner() {
CPlaceInner::NoPlace => {}
CPlaceInner::Var(var) => {
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)
}
types::F64 => {
let zero = fx.bcx.ins().iconst(types::I64, 0);
fx.bcx.ins().bitcast(types::F64, zero)
}
_ => panic!("clif_type returned {}", clif_ty),
};
fx.bcx.set_val_label(val, cranelift_codegen::ir::ValueLabel::from_u32(var.as_u32()));
fx.bcx.def_var(mir_var(var), val);
}
_ => {
let addr = ret.to_ptr(fx).get_addr(fx);
let layout = ret.layout();
fx.bcx.emit_small_memset(fx.module.target_config(), addr, 0, layout.size.bytes(), 1);
}
}
};
uninit, () {
let layout = ret.layout();
if layout.abi == Abi::Uninhabited {
crate::trap::trap_panic(fx, "[panic] Called intrinsic::uninit for uninhabited type.");
return;
}
match *ret.inner() {
CPlaceInner::NoPlace => {},
CPlaceInner::Var(var) => {
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)
}
types::F64 => {
let zero = fx.bcx.ins().iconst(types::I64, 0xcafebabedeadbeefu64 as i64);
fx.bcx.ins().bitcast(types::F64, zero)
}
_ => panic!("clif_type returned {}", clif_ty),
};
fx.bcx.set_val_label(val, cranelift_codegen::ir::ValueLabel::from_u32(var.as_u32()));
fx.bcx.def_var(mir_var(var), val);
}
CPlaceInner::Addr(_, _) => {
// Don't write to `ret`, as the destination memory is already uninitialized.
}
}
};
write_bytes, (c dst, v val, v count) {
let pointee_ty = dst.layout().ty.builtin_deref(true).unwrap().ty;
let pointee_size = fx.layout_of(pointee_ty).size.bytes();