diff --git a/Cargo.lock b/Cargo.lock index 841467c11e0..2748628cfcf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -38,7 +38,7 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -70,7 +70,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cfg-if" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -90,7 +90,7 @@ dependencies = [ [[package]] name = "cranelift" version = "0.22.0" -source = "git+https://github.com/CraneStation/cranelift.git#138b2ce94143bc32d16397fe7758a2da4bb5647e" +source = "git+https://github.com/CraneStation/cranelift.git#b2281ed5bc640fa04a4ec88f24ceb2cf9c4242e6" dependencies = [ "cranelift-codegen 0.22.0 (git+https://github.com/CraneStation/cranelift.git)", "cranelift-frontend 0.22.0 (git+https://github.com/CraneStation/cranelift.git)", @@ -99,7 +99,7 @@ dependencies = [ [[package]] name = "cranelift-bforest" version = "0.22.0" -source = "git+https://github.com/CraneStation/cranelift.git#138b2ce94143bc32d16397fe7758a2da4bb5647e" +source = "git+https://github.com/CraneStation/cranelift.git#b2281ed5bc640fa04a4ec88f24ceb2cf9c4242e6" dependencies = [ "cranelift-entity 0.22.0 (git+https://github.com/CraneStation/cranelift.git)", ] @@ -107,13 +107,13 @@ dependencies = [ [[package]] name = "cranelift-codegen" version = "0.22.0" -source = "git+https://github.com/CraneStation/cranelift.git#138b2ce94143bc32d16397fe7758a2da4bb5647e" +source = "git+https://github.com/CraneStation/cranelift.git#b2281ed5bc640fa04a4ec88f24ceb2cf9c4242e6" dependencies = [ "cranelift-bforest 0.22.0 (git+https://github.com/CraneStation/cranelift.git)", "cranelift-codegen-meta 0.22.0 (git+https://github.com/CraneStation/cranelift.git)", "cranelift-entity 0.22.0 (git+https://github.com/CraneStation/cranelift.git)", - "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "target-lexicon 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -121,22 +121,22 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" version = "0.22.0" -source = "git+https://github.com/CraneStation/cranelift.git#138b2ce94143bc32d16397fe7758a2da4bb5647e" +source = "git+https://github.com/CraneStation/cranelift.git#b2281ed5bc640fa04a4ec88f24ceb2cf9c4242e6" [[package]] name = "cranelift-entity" version = "0.22.0" -source = "git+https://github.com/CraneStation/cranelift.git#138b2ce94143bc32d16397fe7758a2da4bb5647e" +source = "git+https://github.com/CraneStation/cranelift.git#b2281ed5bc640fa04a4ec88f24ceb2cf9c4242e6" [[package]] name = "cranelift-faerie" version = "0.22.0" -source = "git+https://github.com/CraneStation/cranelift.git#138b2ce94143bc32d16397fe7758a2da4bb5647e" +source = "git+https://github.com/CraneStation/cranelift.git#b2281ed5bc640fa04a4ec88f24ceb2cf9c4242e6" dependencies = [ "cranelift-codegen 0.22.0 (git+https://github.com/CraneStation/cranelift.git)", "cranelift-module 0.22.0 (git+https://github.com/CraneStation/cranelift.git)", "faerie 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "goblin 0.0.17 (registry+https://github.com/rust-lang/crates.io-index)", "target-lexicon 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -144,7 +144,7 @@ dependencies = [ [[package]] name = "cranelift-frontend" version = "0.22.0" -source = "git+https://github.com/CraneStation/cranelift.git#138b2ce94143bc32d16397fe7758a2da4bb5647e" +source = "git+https://github.com/CraneStation/cranelift.git#b2281ed5bc640fa04a4ec88f24ceb2cf9c4242e6" dependencies = [ "cranelift-codegen 0.22.0 (git+https://github.com/CraneStation/cranelift.git)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -154,18 +154,18 @@ dependencies = [ [[package]] name = "cranelift-module" version = "0.22.0" -source = "git+https://github.com/CraneStation/cranelift.git#138b2ce94143bc32d16397fe7758a2da4bb5647e" +source = "git+https://github.com/CraneStation/cranelift.git#b2281ed5bc640fa04a4ec88f24ceb2cf9c4242e6" dependencies = [ "cranelift-codegen 0.22.0 (git+https://github.com/CraneStation/cranelift.git)", "cranelift-entity 0.22.0 (git+https://github.com/CraneStation/cranelift.git)", - "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cranelift-native" version = "0.22.0" -source = "git+https://github.com/CraneStation/cranelift.git#138b2ce94143bc32d16397fe7758a2da4bb5647e" +source = "git+https://github.com/CraneStation/cranelift.git#b2281ed5bc640fa04a4ec88f24ceb2cf9c4242e6" dependencies = [ "cranelift-codegen 0.22.0 (git+https://github.com/CraneStation/cranelift.git)", "raw-cpuid 6.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -175,7 +175,7 @@ dependencies = [ [[package]] name = "cranelift-simplejit" version = "0.22.0" -source = "git+https://github.com/CraneStation/cranelift.git#138b2ce94143bc32d16397fe7758a2da4bb5647e" +source = "git+https://github.com/CraneStation/cranelift.git#b2281ed5bc640fa04a4ec88f24ceb2cf9c4242e6" dependencies = [ "cranelift-codegen 0.22.0 (git+https://github.com/CraneStation/cranelift.git)", "cranelift-module 0.22.0 (git+https://github.com/CraneStation/cranelift.git)", @@ -224,9 +224,9 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "goblin 0.0.17 (registry+https://github.com/rust-lang/crates.io-index)", - "indexmap 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "scroll 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", "string-interner 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -237,22 +237,22 @@ dependencies = [ [[package]] name = "failure" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "failure_derive" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", - "synstructure 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.13 (registry+https://github.com/rust-lang/crates.io-index)", + "synstructure 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -280,7 +280,7 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -306,7 +306,7 @@ name = "log" version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -322,7 +322,7 @@ name = "memchr" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -403,7 +403,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "errno 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "mach 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -458,7 +458,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -518,22 +518,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "syn" -version = "0.14.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "syn" -version = "0.15.11" +version = "0.15.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", @@ -543,12 +533,12 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.13 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -557,8 +547,8 @@ name = "target-lexicon" version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -672,7 +662,7 @@ dependencies = [ "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "90492c5858dd7d2e78691cfb89f90d273a2800fc11d98f60786e5d87e2f83781" "checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" -"checksum cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4e7bb64a8ebb0d856483e1e682ea3422f883c5f5615a90d51a2c82fe87fdd3" +"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" "checksum cranelift 0.22.0 (git+https://github.com/CraneStation/cranelift.git)" = "" "checksum cranelift-bforest 0.22.0 (git+https://github.com/CraneStation/cranelift.git)" = "" @@ -688,12 +678,12 @@ dependencies = [ "checksum errno 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c2a071601ed01b988f896ab14b95e67335d1eeb50190932a1320f7fe3cadc84e" "checksum errno-dragonfly 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "14ca354e36190500e1e1fb267c647932382b54053c50b14970856c0b00a35067" "checksum faerie 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a4c878c9fe0eb38d5fe1a09c5df7348253b7e6a67868fd8540be525dc04d63cb" -"checksum failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7efb22686e4a466b1ec1a15c2898f91fa9cb340452496dca654032de20ff95b9" -"checksum failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "946d0e98a50d9831f5d589038d2ca7f8f455b1c21028c0db0e84116a12696426" +"checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7" +"checksum failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596" "checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" "checksum goblin 0.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "5911d7df7b8f65ab676c5327b50acea29d3c6a1a4ad05e444cf5dce321b26db2" "checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e" -"checksum indexmap 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "08173ba1e906efb6538785a8844dd496f5d34f0a2d88038e95195172fc667220" +"checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d" "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" "checksum lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca488b89a5657b0a2ecd45b95609b3e848cf1755da332a0da46e2b2b1cb371a7" "checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d" @@ -723,9 +713,8 @@ dependencies = [ "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" "checksum structopt 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "d77af7242f18c40fd19cb270985930f239ee1646cfb482050bbae9da1d18743b" "checksum structopt-derive 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "17ff01fe96de9d16e7372ae5f19dd7ece2c703b51043c3db9ea27f9e393ea311" -"checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" -"checksum syn 0.15.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b036b7b35e846707c0e55c2c9441fa47867c0f87fca416921db3261b1d8c741a" -"checksum synstructure 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "85bb9b7550d063ea184027c9b8c20ac167cd36d3e06b3a40bceb9d746dc1a7b7" +"checksum syn 0.15.13 (registry+https://github.com/rust-lang/crates.io-index)" = "7b4439ee8325b4e4b57e59309c3724c9a4478eaeb4eb094b6f3fac180a3b2876" +"checksum synstructure 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ec37f4fab4bafaf6b5621c1d54e6aa5d4d059a8f84929e87abfdd7f9f04c6db2" "checksum target-lexicon 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a34226bd63b5a26fc909f5f0d7ef4dc55d5851077035e49437e4e14bf567247f" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" diff --git a/src/common.rs b/src/common.rs index dbfc27d609e..c4658f2b51f 100644 --- a/src/common.rs +++ b/src/common.rs @@ -419,20 +419,22 @@ impl<'a, 'tcx: 'a> CPlace<'tcx> { let data = from.load_value(fx); fx.bcx.def_var(mir_var(var), data) } - CPlace::Addr(addr, None, layout) => { - let size = layout.size.bytes() as i32; - + CPlace::Addr(addr, None, dst_layout) => { match from { - CValue::ByVal(val, _layout) => { + CValue::ByVal(val, _src_layout) => { fx.bcx.ins().store(MemFlags::new(), val, addr, 0); } - CValue::ByValPair(val1, val2, _layout) => { - let val1_offset = layout.fields.offset(0).bytes() as i32; - let val2_offset = layout.fields.offset(1).bytes() as i32; + CValue::ByValPair(val1, val2, _src_layout) => { + let val1_offset = dst_layout.fields.offset(0).bytes() as i32; + let val2_offset = dst_layout.fields.offset(1).bytes() as i32; fx.bcx.ins().store(MemFlags::new(), val1, addr, val1_offset); fx.bcx.ins().store(MemFlags::new(), val2, addr, val2_offset); } - CValue::ByRef(from, _layout) => { + CValue::ByRef(from, _src_layout) => { + let size = dst_layout.size.bytes() as i32; + // FIXME emit_small_memcpy has a bug as of commit CraneStation/cranelift@b2281ed + // fx.bcx.emit_small_memcpy(fx.isa, addr, from, size, layout.align.abi() as u8, src_layout.align.abi() as u8); + let mut offset = 0; while size - offset >= 8 { let byte = fx.bcx.ins().load(