Initial reorg.
This is largely the same as #305, but updated for the current tree.
This commit is contained in:
28
crates/obj/src/data_segment.rs
Normal file
28
crates/obj/src/data_segment.rs
Normal file
@@ -0,0 +1,28 @@
|
||||
use alloc::string::String;
|
||||
use alloc::vec::Vec;
|
||||
use faerie::{Artifact, Decl};
|
||||
use wasmtime_environ::DataInitializer;
|
||||
|
||||
/// Declares data segment symbol
|
||||
pub fn declare_data_segment(
|
||||
obj: &mut Artifact,
|
||||
_data_initaliazer: &DataInitializer,
|
||||
index: usize,
|
||||
) -> Result<(), String> {
|
||||
let name = format!("_memory_{}", index);
|
||||
obj.declare(name, Decl::data())
|
||||
.map_err(|err| format!("{}", err))?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Emit segment data and initialization location
|
||||
pub fn emit_data_segment(
|
||||
obj: &mut Artifact,
|
||||
data_initaliazer: &DataInitializer,
|
||||
index: usize,
|
||||
) -> Result<(), String> {
|
||||
let name = format!("_memory_{}", index);
|
||||
obj.define(name, Vec::from(data_initaliazer.data))
|
||||
.map_err(|err| format!("{}", err))?;
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user