Remove reloc_block
It isn't called and all reloc sinks either ignore it or panic when it is called.
This commit is contained in:
@@ -74,9 +74,6 @@ impl<'a> MemoryCodeSink<'a> {
|
|||||||
|
|
||||||
/// A trait for receiving relocations for code that is emitted directly into memory.
|
/// A trait for receiving relocations for code that is emitted directly into memory.
|
||||||
pub trait RelocSink {
|
pub trait RelocSink {
|
||||||
/// Add a relocation referencing a block at the current offset.
|
|
||||||
fn reloc_block(&mut self, _: CodeOffset, _: Reloc, _: CodeOffset);
|
|
||||||
|
|
||||||
/// Add a relocation referencing an external symbol at the current offset.
|
/// Add a relocation referencing an external symbol at the current offset.
|
||||||
fn reloc_external(
|
fn reloc_external(
|
||||||
&mut self,
|
&mut self,
|
||||||
@@ -138,11 +135,6 @@ impl<'a> CodeSink for MemoryCodeSink<'a> {
|
|||||||
self.write(x);
|
self.write(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reloc_block(&mut self, rel: Reloc, block_offset: CodeOffset) {
|
|
||||||
let ofs = self.offset();
|
|
||||||
self.relocs.reloc_block(ofs, rel, block_offset);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn reloc_external(
|
fn reloc_external(
|
||||||
&mut self,
|
&mut self,
|
||||||
srcloc: SourceLoc,
|
srcloc: SourceLoc,
|
||||||
@@ -204,7 +196,6 @@ impl<'a> CodeSink for MemoryCodeSink<'a> {
|
|||||||
pub struct NullRelocSink {}
|
pub struct NullRelocSink {}
|
||||||
|
|
||||||
impl RelocSink for NullRelocSink {
|
impl RelocSink for NullRelocSink {
|
||||||
fn reloc_block(&mut self, _: CodeOffset, _: Reloc, _: CodeOffset) {}
|
|
||||||
fn reloc_external(
|
fn reloc_external(
|
||||||
&mut self,
|
&mut self,
|
||||||
_: CodeOffset,
|
_: CodeOffset,
|
||||||
|
|||||||
@@ -140,9 +140,6 @@ pub trait CodeSink {
|
|||||||
/// Add 8 bytes to the code section.
|
/// Add 8 bytes to the code section.
|
||||||
fn put8(&mut self, _: u64);
|
fn put8(&mut self, _: u64);
|
||||||
|
|
||||||
/// Add a relocation referencing a block at the current offset.
|
|
||||||
fn reloc_block(&mut self, _: Reloc, _: CodeOffset);
|
|
||||||
|
|
||||||
/// Add a relocation referencing an external symbol plus the addend at the current offset.
|
/// Add a relocation referencing an external symbol plus the addend at the current offset.
|
||||||
fn reloc_external(&mut self, _: SourceLoc, _: Reloc, _: &ExternalName, _: Addend);
|
fn reloc_external(&mut self, _: SourceLoc, _: Reloc, _: &ExternalName, _: Addend);
|
||||||
|
|
||||||
|
|||||||
@@ -59,8 +59,6 @@ impl CodeSink for TestCodeSink {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reloc_block(&mut self, _rel: Reloc, _block_offset: CodeOffset) {}
|
|
||||||
|
|
||||||
fn reloc_external(
|
fn reloc_external(
|
||||||
&mut self,
|
&mut self,
|
||||||
_srcloc: SourceLoc,
|
_srcloc: SourceLoc,
|
||||||
|
|||||||
@@ -72,10 +72,6 @@ impl binemit::CodeSink for TextSink {
|
|||||||
self.offset += 8;
|
self.offset += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reloc_block(&mut self, reloc: binemit::Reloc, block_offset: binemit::CodeOffset) {
|
|
||||||
write!(self.text, "{}({}) ", reloc, block_offset).unwrap();
|
|
||||||
}
|
|
||||||
|
|
||||||
fn reloc_external(
|
fn reloc_external(
|
||||||
&mut self,
|
&mut self,
|
||||||
_srcloc: ir::SourceLoc,
|
_srcloc: ir::SourceLoc,
|
||||||
|
|||||||
@@ -109,7 +109,6 @@ impl binemit::CodeSink for SizeSink {
|
|||||||
self.offset += 8;
|
self.offset += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reloc_block(&mut self, _reloc: binemit::Reloc, _block_offset: binemit::CodeOffset) {}
|
|
||||||
fn reloc_external(
|
fn reloc_external(
|
||||||
&mut self,
|
&mut self,
|
||||||
_srcloc: ir::SourceLoc,
|
_srcloc: ir::SourceLoc,
|
||||||
|
|||||||
@@ -106,7 +106,6 @@ impl binemit::CodeSink for RodataSink {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reloc_block(&mut self, _reloc: binemit::Reloc, _block_offset: binemit::CodeOffset) {}
|
|
||||||
fn reloc_external(
|
fn reloc_external(
|
||||||
&mut self,
|
&mut self,
|
||||||
_: ir::SourceLoc,
|
_: ir::SourceLoc,
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ impl CodeSink for TestStackMapsSink {
|
|||||||
self.offset += 8;
|
self.offset += 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn reloc_block(&mut self, _: Reloc, _: CodeOffset) {}
|
|
||||||
fn reloc_external(&mut self, _: SourceLoc, _: Reloc, _: &ExternalName, _: Addend) {}
|
fn reloc_external(&mut self, _: SourceLoc, _: Reloc, _: &ExternalName, _: Addend) {}
|
||||||
fn reloc_constant(&mut self, _: Reloc, _: ConstantOffset) {}
|
fn reloc_constant(&mut self, _: Reloc, _: ConstantOffset) {}
|
||||||
fn reloc_jt(&mut self, _: Reloc, _: JumpTable) {}
|
fn reloc_jt(&mut self, _: Reloc, _: JumpTable) {}
|
||||||
|
|||||||
@@ -622,10 +622,6 @@ struct ObjectRelocSink {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl RelocSink for ObjectRelocSink {
|
impl RelocSink for ObjectRelocSink {
|
||||||
fn reloc_block(&mut self, _offset: CodeOffset, _reloc: Reloc, _block_offset: CodeOffset) {
|
|
||||||
unimplemented!();
|
|
||||||
}
|
|
||||||
|
|
||||||
fn reloc_external(
|
fn reloc_external(
|
||||||
&mut self,
|
&mut self,
|
||||||
offset: CodeOffset,
|
offset: CodeOffset,
|
||||||
|
|||||||
@@ -539,10 +539,6 @@ struct SimpleJITRelocSink {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl RelocSink for SimpleJITRelocSink {
|
impl RelocSink for SimpleJITRelocSink {
|
||||||
fn reloc_block(&mut self, _offset: CodeOffset, _reloc: Reloc, _block_offset: CodeOffset) {
|
|
||||||
unimplemented!();
|
|
||||||
}
|
|
||||||
|
|
||||||
fn reloc_external(
|
fn reloc_external(
|
||||||
&mut self,
|
&mut self,
|
||||||
offset: CodeOffset,
|
offset: CodeOffset,
|
||||||
|
|||||||
@@ -19,22 +19,6 @@ impl PrintRelocs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl binemit::RelocSink for PrintRelocs {
|
impl binemit::RelocSink for PrintRelocs {
|
||||||
fn reloc_block(
|
|
||||||
&mut self,
|
|
||||||
where_: binemit::CodeOffset,
|
|
||||||
r: binemit::Reloc,
|
|
||||||
offset: binemit::CodeOffset,
|
|
||||||
) {
|
|
||||||
if self.flag_print {
|
|
||||||
writeln!(
|
|
||||||
&mut self.text,
|
|
||||||
"reloc_block: {} {} at {}",
|
|
||||||
r, offset, where_
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn reloc_external(
|
fn reloc_external(
|
||||||
&mut self,
|
&mut self,
|
||||||
where_: binemit::CodeOffset,
|
where_: binemit::CodeOffset,
|
||||||
|
|||||||
@@ -114,15 +114,6 @@ struct RelocSink {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl binemit::RelocSink for RelocSink {
|
impl binemit::RelocSink for RelocSink {
|
||||||
fn reloc_block(
|
|
||||||
&mut self,
|
|
||||||
_offset: binemit::CodeOffset,
|
|
||||||
_reloc: binemit::Reloc,
|
|
||||||
_block_offset: binemit::CodeOffset,
|
|
||||||
) {
|
|
||||||
// This should use the `offsets` field of `ir::Function`.
|
|
||||||
panic!("block headers not yet implemented");
|
|
||||||
}
|
|
||||||
fn reloc_external(
|
fn reloc_external(
|
||||||
&mut self,
|
&mut self,
|
||||||
offset: binemit::CodeOffset,
|
offset: binemit::CodeOffset,
|
||||||
|
|||||||
@@ -184,14 +184,6 @@ impl TrampolineRelocSink {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl binemit::RelocSink for 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(
|
fn reloc_external(
|
||||||
&mut self,
|
&mut self,
|
||||||
offset: binemit::CodeOffset,
|
offset: binemit::CodeOffset,
|
||||||
|
|||||||
@@ -83,10 +83,6 @@ pub fn element(elements: ElementSectionReader) -> Result<(), Error> {
|
|||||||
struct UnimplementedRelocSink;
|
struct UnimplementedRelocSink;
|
||||||
|
|
||||||
impl binemit::RelocSink for UnimplementedRelocSink {
|
impl binemit::RelocSink for UnimplementedRelocSink {
|
||||||
fn reloc_block(&mut self, _: binemit::CodeOffset, _: binemit::Reloc, _: binemit::CodeOffset) {
|
|
||||||
unimplemented!()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn reloc_external(
|
fn reloc_external(
|
||||||
&mut self,
|
&mut self,
|
||||||
_: binemit::CodeOffset,
|
_: binemit::CodeOffset,
|
||||||
|
|||||||
@@ -86,15 +86,6 @@ struct RelocSink {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl binemit::RelocSink for RelocSink {
|
impl binemit::RelocSink for RelocSink {
|
||||||
fn reloc_block(
|
|
||||||
&mut self,
|
|
||||||
_offset: binemit::CodeOffset,
|
|
||||||
_reloc: binemit::Reloc,
|
|
||||||
_block_offset: binemit::CodeOffset,
|
|
||||||
) {
|
|
||||||
// This should use the `offsets` field of `ir::Function`.
|
|
||||||
panic!("block headers not yet implemented");
|
|
||||||
}
|
|
||||||
fn reloc_external(
|
fn reloc_external(
|
||||||
&mut self,
|
&mut self,
|
||||||
offset: binemit::CodeOffset,
|
offset: binemit::CodeOffset,
|
||||||
|
|||||||
Reference in New Issue
Block a user