Refactor SimpleJITTrapSink/FaerieTrapSink into NullTrapSink.

This publishes it for use outside of simpljie/faerie as well.
This commit is contained in:
Dan Gohman
2018-04-17 11:22:11 -07:00
parent 1f43ec09f3
commit 58380f38e8
5 changed files with 18 additions and 20 deletions

View File

@@ -1,7 +1,7 @@
//! Defines `FaerieBackend`.
use container;
use cretonne_codegen::binemit::{Addend, CodeOffset, Reloc, RelocSink, TrapSink};
use cretonne_codegen::binemit::{Addend, CodeOffset, Reloc, RelocSink, NullTrapSink};
use cretonne_codegen::isa::TargetIsa;
use cretonne_codegen::result::CtonError;
use cretonne_codegen::{self, binemit, ir};
@@ -103,7 +103,9 @@ impl Backend for FaerieBackend {
name,
namespace,
};
let mut trap_sink = FaerieTrapSink {};
// Ignore traps for now. For now, frontends should just avoid generating code
// that traps.
let mut trap_sink = NullTrapSink {};
ctx.emit_to_memory(
code.as_mut_ptr(),
@@ -289,10 +291,3 @@ impl<'a> RelocSink for FaerieRelocSink<'a> {
unimplemented!();
}
}
struct FaerieTrapSink {}
impl TrapSink for FaerieTrapSink {
// Ignore traps for now. For now, frontends should just avoid generating code that traps.
fn trap(&mut self, _offset: CodeOffset, _srcloc: ir::SourceLoc, _code: ir::TrapCode) {}
}