about summary refs log tree commit diff
path: root/src/vtable.rs
diff options
context:
space:
mode:
authorbjorn3 <bjorn3@users.noreply.github.com>2020-10-01 10:38:23 +0200
committerbjorn3 <bjorn3@users.noreply.github.com>2020-10-08 19:00:21 +0200
commit0a5968dfd215a61445c30e0e586a387b938faa67 (patch)
treeff9cb4e2c092c7b6342129525949cec0f938b837 /src/vtable.rs
parentcb2dd4b5e05443a950dcd30d54a98c4c1c07a339 (diff)
Use the new cranelift-module interface
This updates Cranelift to include bytecodealliance/wasmtime#2249
Diffstat (limited to 'src/vtable.rs')
-rw-r--r--src/vtable.rs31
1 files changed, 16 insertions, 15 deletions
diff --git a/src/vtable.rs b/src/vtable.rs
index d6bb9c912b5..bb3cf8b3f3a 100644
--- a/src/vtable.rs
+++ b/src/vtable.rs
@@ -15,7 +15,7 @@ fn vtable_memflags() -> MemFlags {
     flags
 }
 
-pub(crate) fn drop_fn_of_obj(fx: &mut FunctionCx<'_, '_, impl Backend>, vtable: Value) -> Value {
+pub(crate) fn drop_fn_of_obj(fx: &mut FunctionCx<'_, '_, impl Module>, vtable: Value) -> Value {
     let usize_size = fx.layout_of(fx.tcx.types.usize).size.bytes() as usize;
     fx.bcx.ins().load(
         pointer_ty(fx.tcx),
@@ -25,7 +25,7 @@ pub(crate) fn drop_fn_of_obj(fx: &mut FunctionCx<'_, '_, impl Backend>, vtable:
     )
 }
 
-pub(crate) fn size_of_obj(fx: &mut FunctionCx<'_, '_, impl Backend>, vtable: Value) -> Value {
+pub(crate) fn size_of_obj(fx: &mut FunctionCx<'_, '_, impl Module>, vtable: Value) -> Value {
     let usize_size = fx.layout_of(fx.tcx.types.usize).size.bytes() as usize;
     fx.bcx.ins().load(
         pointer_ty(fx.tcx),
@@ -35,7 +35,7 @@ pub(crate) fn size_of_obj(fx: &mut FunctionCx<'_, '_, impl Backend>, vtable: Val
     )
 }
 
-pub(crate) fn min_align_of_obj(fx: &mut FunctionCx<'_, '_, impl Backend>, vtable: Value) -> Value {
+pub(crate) fn min_align_of_obj(fx: &mut FunctionCx<'_, '_, impl Module>, vtable: Value) -> Value {
     let usize_size = fx.layout_of(fx.tcx.types.usize).size.bytes() as usize;
     fx.bcx.ins().load(
         pointer_ty(fx.tcx),
@@ -46,7 +46,7 @@ pub(crate) fn min_align_of_obj(fx: &mut FunctionCx<'_, '_, impl Backend>, vtable
 }
 
 pub(crate) fn get_ptr_and_method_ref<'tcx>(
-    fx: &mut FunctionCx<'_, 'tcx, impl Backend>,
+    fx: &mut FunctionCx<'_, 'tcx, impl Module>,
     arg: CValue<'tcx>,
     idx: usize,
 ) -> (Value, Value) {
@@ -68,7 +68,7 @@ pub(crate) fn get_ptr_and_method_ref<'tcx>(
 }
 
 pub(crate) fn get_vtable<'tcx>(
-    fx: &mut FunctionCx<'_, 'tcx, impl Backend>,
+    fx: &mut FunctionCx<'_, 'tcx, impl Module>,
     layout: TyAndLayout<'tcx>,
     trait_ref: Option<ty::PolyExistentialTraitRef<'tcx>>,
 ) -> Value {
@@ -85,7 +85,7 @@ pub(crate) fn get_vtable<'tcx>(
 }
 
 fn build_vtable<'tcx>(
-    fx: &mut FunctionCx<'_, 'tcx, impl Backend>,
+    fx: &mut FunctionCx<'_, 'tcx, impl Module>,
     layout: TyAndLayout<'tcx>,
     trait_ref: Option<ty::PolyExistentialTraitRef<'tcx>>,
 ) -> DataId {
@@ -137,6 +137,16 @@ fn build_vtable<'tcx>(
         }
     }
 
+    data_ctx.set_align(
+        fx.tcx
+            .data_layout
+            .pointer_align
+            .pref
+            .bytes()
+            .try_into()
+            .unwrap(),
+    );
+
     let data_id = fx
         .cx
         .module
@@ -153,15 +163,6 @@ fn build_vtable<'tcx>(
             Linkage::Local,
             false,
             false,
-            Some(
-                fx.tcx
-                    .data_layout
-                    .pointer_align
-                    .pref
-                    .bytes()
-                    .try_into()
-                    .unwrap(),
-            ),
         )
         .unwrap();