Rustup to rustc 1.44.0-nightly (7ceebd98c
2020-03-17)
This commit is contained in:
parent
992fae08c4
commit
d464169beb
3 changed files with 1 additions and 74 deletions
|
@ -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;
|
||||
|
|
|
@ -1 +1 @@
|
|||
nightly-2020-03-17
|
||||
nightly-2020-03-18
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Add table
Reference in a new issue