]> git.lizzy.rs Git - rust.git/blobdiff - compiler/rustc_codegen_ssa/src/mir/intrinsic.rs
Move vtable_size and vtable_align impls to cg_ssa
[rust.git] / compiler / rustc_codegen_ssa / src / mir / intrinsic.rs
index 645afae30d88729b518c338f656330a0670f84bd..1fffa3beaaa85174dc5b0745e901b7e310da35f6 100644 (file)
@@ -3,6 +3,7 @@
 use super::FunctionCx;
 use crate::common::{span_invalid_monomorphization_error, IntPredicate};
 use crate::glue;
+use crate::meth;
 use crate::traits::*;
 use crate::MemFlags;
 
@@ -102,6 +103,15 @@ pub fn codegen_intrinsic_call(
                     bx.const_usize(bx.layout_of(tp_ty).align.abi.bytes())
                 }
             }
+            sym::vtable_size | sym::vtable_align => {
+                let vtable = args[0].immediate();
+                let idx = match name {
+                    sym::vtable_size => ty::COMMON_VTABLE_ENTRIES_SIZE,
+                    sym::vtable_align => ty::COMMON_VTABLE_ENTRIES_ALIGN,
+                    _ => bug!(),
+                };
+                meth::VirtualIndex::from_index(idx).get_usize(bx, vtable)
+            }
             sym::pref_align_of
             | sym::needs_drop
             | sym::type_id