diff options
| author | Denis Merigoux <denis.merigoux@gmail.com> | 2018-08-29 16:40:47 +0200 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2018-11-16 14:11:59 +0200 |
| commit | 3aee77277efbac0b9b14b2097ea8a2c449fb1fc3 (patch) | |
| tree | 665945d226ace05cc576c73fbde486c37d249c2a /src/librustc_codegen_llvm/common.rs | |
| parent | 83e07f9fe9b7237fd48f79112686b886ae56a920 (diff) | |
| download | rust-3aee77277efbac0b9b14b2097ea8a2c449fb1fc3.tar.gz rust-3aee77277efbac0b9b14b2097ea8a2c449fb1fc3.zip | |
Split CommonMethods to accomodate for use in back/write.rs
Diffstat (limited to 'src/librustc_codegen_llvm/common.rs')
| -rw-r--r-- | src/librustc_codegen_llvm/common.rs | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/src/librustc_codegen_llvm/common.rs b/src/librustc_codegen_llvm/common.rs index 11940e9b0af..cf88a973162 100644 --- a/src/librustc_codegen_llvm/common.rs +++ b/src/librustc_codegen_llvm/common.rs @@ -24,7 +24,7 @@ use declare; use type_::Type; use type_of::LayoutLlvmExt; use value::Value; -use interfaces::{Backend, CommonMethods}; +use interfaces::{Backend, CommonMethods, CommonWriteMethods}; use rustc::ty::{self, Ty, TyCtxt}; use rustc::ty::layout::{HasDataLayout, LayoutOf}; @@ -201,11 +201,6 @@ impl Backend for CodegenCx<'ll, 'tcx> { } impl<'ll, 'tcx : 'll> CommonMethods for CodegenCx<'ll, 'tcx> { - fn val_ty(v: &'ll Value) -> &'ll Type { - unsafe { - llvm::LLVMTypeOf(v) - } - } // LLVM constant constructors. fn c_null(&self, t: &'ll Type) -> &'ll Value { @@ -354,13 +349,6 @@ impl<'ll, 'tcx : 'll> CommonMethods for CodegenCx<'ll, 'tcx> { Self::c_bytes_in_context(&self.llcx, bytes) } - fn c_bytes_in_context(llcx: &'ll llvm::Context, bytes: &[u8]) -> &'ll Value { - unsafe { - let ptr = bytes.as_ptr() as *const c_char; - return llvm::LLVMConstStringInContext(llcx, ptr, bytes.len() as c_uint, True); - } - } - fn const_get_elt(v: &'ll Value, idx: u64) -> &'ll Value { unsafe { assert_eq!(idx as c_uint as u64, idx); @@ -501,3 +489,18 @@ pub fn shift_mask_val( _ => bug!("shift_mask_val: expected Integer or Vector, found {:?}", kind), } } + +impl<'ll, 'tcx : 'll> CommonWriteMethods for CodegenCx<'ll, 'tcx> { + fn val_ty(v: &'ll Value) -> &'ll Type { + unsafe { + llvm::LLVMTypeOf(v) + } + } + + fn c_bytes_in_context(llcx: &'ll llvm::Context, bytes: &[u8]) -> &'ll Value { + unsafe { + let ptr = bytes.as_ptr() as *const c_char; + return llvm::LLVMConstStringInContext(llcx, ptr, bytes.len() as c_uint, True); + } + } +} |
