diff options
| author | Oliver Scherer <github35764891676564198441@oli-obk.de> | 2019-01-08 13:49:37 +0100 |
|---|---|---|
| committer | Oliver Scherer <github35764891676564198441@oli-obk.de> | 2019-01-27 21:41:35 +0100 |
| commit | fe50b4eb1d6f7a31c53798bca3d0fa2b0670fa3d (patch) | |
| tree | 5dd322e06bb9bcabcde61868a91d01c326127f72 /src/librustc_codegen_ssa | |
| parent | 2a1748834e80b2461be4e18d420503d60e687312 (diff) | |
| download | rust-fe50b4eb1d6f7a31c53798bca3d0fa2b0670fa3d.tar.gz rust-fe50b4eb1d6f7a31c53798bca3d0fa2b0670fa3d.zip | |
`ConstValue::ScalarPair` only needs to represent slices
Diffstat (limited to 'src/librustc_codegen_ssa')
| -rw-r--r-- | src/librustc_codegen_ssa/mir/operand.rs | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/librustc_codegen_ssa/mir/operand.rs b/src/librustc_codegen_ssa/mir/operand.rs index 2026e042ef0..8aad4c1f6e1 100644 --- a/src/librustc_codegen_ssa/mir/operand.rs +++ b/src/librustc_codegen_ssa/mir/operand.rs @@ -88,9 +88,9 @@ impl<'a, 'tcx: 'a, V: CodegenObject> OperandRef<'tcx, V> { ); OperandValue::Immediate(llval) }, - ConstValue::ScalarPair(a, b) => { - let (a_scalar, b_scalar) = match layout.abi { - layout::Abi::ScalarPair(ref a, ref b) => (a, b), + ConstValue::Slice(a, b) => { + let a_scalar = match layout.abi { + layout::Abi::ScalarPair(ref a, _) => a, _ => bug!("from_const: invalid ScalarPair layout: {:#?}", layout) }; let a_llval = bx.cx().scalar_to_backend( @@ -98,11 +98,7 @@ impl<'a, 'tcx: 'a, V: CodegenObject> OperandRef<'tcx, V> { a_scalar, bx.cx().scalar_pair_element_backend_type(layout, 0, true), ); - let b_llval = bx.cx().scalar_to_backend( - b, - b_scalar, - bx.cx().scalar_pair_element_backend_type(layout, 1, true), - ); + let b_llval = bx.cx().const_usize(b); OperandValue::Pair(a_llval, b_llval) }, ConstValue::ByRef(_, alloc, offset) => { |
