about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOliver Schneider <github35764891676564198441@oli-obk.de>2018-05-22 15:19:55 +0200
committerOliver Schneider <github35764891676564198441@oli-obk.de>2018-05-24 20:49:37 +0200
commit4ca169ce84ad717df78bd2e876149b5d59153a46 (patch)
treed46e8782362e791a0ecfbdeff5b8b68d339ac07e
parentbf39c7f87c1208249d400bdc09003c69e2621b96 (diff)
downloadrust-4ca169ce84ad717df78bd2e876149b5d59153a46.tar.gz
rust-4ca169ce84ad717df78bd2e876149b5d59153a46.zip
Use the target types bitsize instead of the source type's
-rw-r--r--src/librustc_mir/interpret/cast.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/librustc_mir/interpret/cast.rs b/src/librustc_mir/interpret/cast.rs
index 6c0a26e1f23..a2eede82acd 100644
--- a/src/librustc_mir/interpret/cast.rs
+++ b/src/librustc_mir/interpret/cast.rs
@@ -92,29 +92,29 @@ impl<'a, 'mir, 'tcx, M: Machine<'mir, 'tcx>> EvalContext<'a, 'mir, 'tcx, M> {
         match dest_ty.sty {
             // float -> uint
             TyUint(t) => {
-                let width = t.bit_width().unwrap_or(self.memory.pointer_size().bytes() as usize * 8);
+                let width = t.bit_width().unwrap_or(self.memory.pointer_size().bits() as usize);
                 match fty {
                     FloatTy::F32 => Ok(Scalar::Bits {
                         bits: Single::from_bits(bits).to_u128(width).value,
-                        defined: 32,
+                        defined: width as u8,
                     }),
                     FloatTy::F64 => Ok(Scalar::Bits {
                         bits: Double::from_bits(bits).to_u128(width).value,
-                        defined: 64,
+                        defined: width as u8,
                     }),
                 }
             },
             // float -> int
             TyInt(t) => {
-                let width = t.bit_width().unwrap_or(self.memory.pointer_size().bytes() as usize * 8);
+                let width = t.bit_width().unwrap_or(self.memory.pointer_size().bits() as usize);
                 match fty {
                     FloatTy::F32 => Ok(Scalar::Bits {
                         bits: Single::from_bits(bits).to_i128(width).value as u128,
-                        defined: 32,
+                        defined: width as u8,
                     }),
                     FloatTy::F64 => Ok(Scalar::Bits {
                         bits: Double::from_bits(bits).to_i128(width).value as u128,
-                        defined: 64,
+                        defined: width as u8,
                     }),
                 }
             },