Add an as_u32() member to entity_impl types.
This allows us to avoid a lot of casting indices back to u32.
This commit is contained in:
@@ -266,7 +266,7 @@ impl UFEntry {
|
|||||||
|
|
||||||
/// Encode a link entry.
|
/// Encode a link entry.
|
||||||
fn encode_link(v: Value) -> i32 {
|
fn encode_link(v: Value) -> i32 {
|
||||||
!(v.index() as i32)
|
!(v.as_u32() as i32)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -98,6 +98,13 @@ macro_rules! entity_impl {
|
|||||||
$entity($crate::__core::u32::MAX)
|
$entity($crate::__core::u32::MAX)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl $entity {
|
||||||
|
/// Return the underlying index value as a `u32`.
|
||||||
|
pub fn as_u32(self) -> u32 {
|
||||||
|
self.0
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Include basic `Display` impl using the given display prefix.
|
// Include basic `Display` impl using the given display prefix.
|
||||||
|
|||||||
@@ -473,7 +473,7 @@ where
|
|||||||
let signature = in_func.import_signature(decl.signature.clone());
|
let signature = in_func.import_signature(decl.signature.clone());
|
||||||
let colocated = decl.linkage.is_final();
|
let colocated = decl.linkage.is_final();
|
||||||
in_func.import_function(ir::ExtFuncData {
|
in_func.import_function(ir::ExtFuncData {
|
||||||
name: ir::ExternalName::user(0, func.index() as u32),
|
name: ir::ExternalName::user(0, func.as_u32()),
|
||||||
signature,
|
signature,
|
||||||
colocated,
|
colocated,
|
||||||
})
|
})
|
||||||
@@ -486,7 +486,7 @@ where
|
|||||||
let decl = &self.contents.data_objects[data].decl;
|
let decl = &self.contents.data_objects[data].decl;
|
||||||
let colocated = decl.linkage.is_final();
|
let colocated = decl.linkage.is_final();
|
||||||
func.create_global_value(ir::GlobalValueData::Symbol {
|
func.create_global_value(ir::GlobalValueData::Symbol {
|
||||||
name: ir::ExternalName::user(1, data.index() as u32),
|
name: ir::ExternalName::user(1, data.as_u32()),
|
||||||
offset: ir::immediates::Imm64::new(0),
|
offset: ir::immediates::Imm64::new(0),
|
||||||
colocated,
|
colocated,
|
||||||
})
|
})
|
||||||
@@ -494,12 +494,12 @@ where
|
|||||||
|
|
||||||
/// TODO: Same as above.
|
/// TODO: Same as above.
|
||||||
pub fn declare_func_in_data(&self, func: FuncId, ctx: &mut DataContext) -> ir::FuncRef {
|
pub fn declare_func_in_data(&self, func: FuncId, ctx: &mut DataContext) -> ir::FuncRef {
|
||||||
ctx.import_function(ir::ExternalName::user(0, func.index() as u32))
|
ctx.import_function(ir::ExternalName::user(0, func.as_u32()))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// TODO: Same as above.
|
/// TODO: Same as above.
|
||||||
pub fn declare_data_in_data(&self, data: DataId, ctx: &mut DataContext) -> ir::GlobalValue {
|
pub fn declare_data_in_data(&self, data: DataId, ctx: &mut DataContext) -> ir::GlobalValue {
|
||||||
ctx.import_global_value(ir::ExternalName::user(1, data.index() as u32))
|
ctx.import_global_value(ir::ExternalName::user(1, data.as_u32()))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Define a function, producing the function body from the given `Context`.
|
/// Define a function, producing the function body from the given `Context`.
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ fn main() {
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
ctx.func.signature = sig_a;
|
ctx.func.signature = sig_a;
|
||||||
ctx.func.name = ExternalName::user(0, func_a.index() as u32);
|
ctx.func.name = ExternalName::user(0, func_a.as_u32());
|
||||||
{
|
{
|
||||||
let mut bcx: FunctionBuilder = FunctionBuilder::new(&mut ctx.func, &mut func_ctx);
|
let mut bcx: FunctionBuilder = FunctionBuilder::new(&mut ctx.func, &mut func_ctx);
|
||||||
let ebb = bcx.create_ebb();
|
let ebb = bcx.create_ebb();
|
||||||
@@ -45,7 +45,7 @@ fn main() {
|
|||||||
module.clear_context(&mut ctx);
|
module.clear_context(&mut ctx);
|
||||||
|
|
||||||
ctx.func.signature = sig_b;
|
ctx.func.signature = sig_b;
|
||||||
ctx.func.name = ExternalName::user(0, func_b.index() as u32);
|
ctx.func.name = ExternalName::user(0, func_b.as_u32());
|
||||||
{
|
{
|
||||||
let mut bcx: FunctionBuilder = FunctionBuilder::new(&mut ctx.func, &mut func_ctx);
|
let mut bcx: FunctionBuilder = FunctionBuilder::new(&mut ctx.func, &mut func_ctx);
|
||||||
let ebb = bcx.create_ebb();
|
let ebb = bcx.create_ebb();
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ fn define_simple_function(module: &mut Module<SimpleJITBackend>) -> FuncId {
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let mut ctx = Context::new();
|
let mut ctx = Context::new();
|
||||||
ctx.func = Function::with_name_signature(ExternalName::user(0, func_id.index() as u32), sig);
|
ctx.func = Function::with_name_signature(ExternalName::user(0, func_id.as_u32()), sig);
|
||||||
let mut func_ctx = FunctionBuilderContext::new();
|
let mut func_ctx = FunctionBuilderContext::new();
|
||||||
{
|
{
|
||||||
let mut bcx: FunctionBuilder = FunctionBuilder::new(&mut ctx.func, &mut func_ctx);
|
let mut bcx: FunctionBuilder = FunctionBuilder::new(&mut ctx.func, &mut func_ctx);
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ use translation_utils::{
|
|||||||
|
|
||||||
/// Compute a `ir::ExternalName` for a given wasm function index.
|
/// Compute a `ir::ExternalName` for a given wasm function index.
|
||||||
fn get_func_name(func_index: FuncIndex) -> ir::ExternalName {
|
fn get_func_name(func_index: FuncIndex) -> ir::ExternalName {
|
||||||
ir::ExternalName::user(0, func_index.index() as u32)
|
ir::ExternalName::user(0, func_index.as_u32())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A collection of names under which a given entity is exported.
|
/// A collection of names under which a given entity is exported.
|
||||||
|
|||||||
Reference in New Issue
Block a user