59 lines
1.9 KiB
Rust
59 lines
1.9 KiB
Rust
#![allow(missing_docs)]
|
|
|
|
pub mod ir {
|
|
pub use cranelift_codegen::ir::{
|
|
ExternalName, Function, InstBuilder, MemFlags, StackSlotData, StackSlotKind,
|
|
};
|
|
}
|
|
pub use cranelift_codegen::print_errors::pretty_error;
|
|
pub use cranelift_codegen::Context;
|
|
pub use cranelift_frontend::{FunctionBuilder, FunctionBuilderContext};
|
|
|
|
pub mod binemit {
|
|
pub use cranelift_codegen::binemit::NullTrapSink;
|
|
pub use cranelift_codegen::binemit::{CodeOffset, NullStackmapSink, TrapSink};
|
|
|
|
use cranelift_codegen::{binemit, ir};
|
|
|
|
/// We don't expect trampoline compilation to produce any relocations, so
|
|
/// this `RelocSink` just asserts that it doesn't recieve any.
|
|
pub struct TrampolineRelocSink {}
|
|
|
|
impl binemit::RelocSink for TrampolineRelocSink {
|
|
fn reloc_block(
|
|
&mut self,
|
|
_offset: binemit::CodeOffset,
|
|
_reloc: binemit::Reloc,
|
|
_block_offset: binemit::CodeOffset,
|
|
) {
|
|
panic!("trampoline compilation should not produce block relocs");
|
|
}
|
|
fn reloc_external(
|
|
&mut self,
|
|
_offset: binemit::CodeOffset,
|
|
_srcloc: ir::SourceLoc,
|
|
_reloc: binemit::Reloc,
|
|
_name: &ir::ExternalName,
|
|
_addend: binemit::Addend,
|
|
) {
|
|
panic!("trampoline compilation should not produce external symbol relocs");
|
|
}
|
|
fn reloc_constant(
|
|
&mut self,
|
|
_code_offset: binemit::CodeOffset,
|
|
_reloc: binemit::Reloc,
|
|
_constant_offset: ir::ConstantOffset,
|
|
) {
|
|
panic!("trampoline compilation should not produce constant relocs");
|
|
}
|
|
fn reloc_jt(
|
|
&mut self,
|
|
_offset: binemit::CodeOffset,
|
|
_reloc: binemit::Reloc,
|
|
_jt: ir::JumpTable,
|
|
) {
|
|
panic!("trampoline compilation should not produce jump table relocs");
|
|
}
|
|
}
|
|
}
|