diff --git a/cranelift/codegen/src/isa/aarch64/inst/emit_tests.rs b/cranelift/codegen/src/isa/aarch64/inst/emit_tests.rs index 915657c2f5..3d7016af2d 100644 --- a/cranelift/codegen/src/isa/aarch64/inst/emit_tests.rs +++ b/cranelift/codegen/src/isa/aarch64/inst/emit_tests.rs @@ -1,7 +1,6 @@ use crate::ir::types::*; use crate::ir::TrapCode; use crate::isa::aarch64::inst::*; -use crate::isa::test_utils; use crate::isa::CallConv; use crate::settings; @@ -6523,12 +6522,10 @@ fn test_aarch64_binemit() { let actual_printing = insn.show_rru(Some(&rru)); assert_eq!(expected_printing, actual_printing); - let mut sink = test_utils::TestCodeSink::new(); let mut buffer = MachBuffer::new(); insn.emit(&mut buffer, &emit_info, &mut Default::default()); let buffer = buffer.finish(); - buffer.emit(&mut sink); - let actual_encoding = &sink.stringify(); + let actual_encoding = &buffer.stringify_code_bytes(); assert_eq!(expected_encoding, actual_encoding); } } diff --git a/cranelift/codegen/src/isa/arm32/inst/emit_tests.rs b/cranelift/codegen/src/isa/arm32/inst/emit_tests.rs index 73269be999..421cc2e548 100644 --- a/cranelift/codegen/src/isa/arm32/inst/emit_tests.rs +++ b/cranelift/codegen/src/isa/arm32/inst/emit_tests.rs @@ -1,5 +1,4 @@ use crate::isa::arm32::inst::*; -use crate::isa::test_utils; use crate::settings; use alloc::vec::Vec; @@ -1948,12 +1947,10 @@ fn test_arm32_emit() { // Check the printed text is as expected. let actual_printing = insn.show_rru(Some(&rru)); assert_eq!(expected_printing, actual_printing); - let mut sink = test_utils::TestCodeSink::new(); let mut buffer = MachBuffer::new(); insn.emit(&mut buffer, &flags, &mut Default::default()); let buffer = buffer.finish(); - buffer.emit(&mut sink); - let actual_encoding = &sink.stringify(); + let actual_encoding = &buffer.stringify_code_bytes(); assert_eq!(expected_encoding, actual_encoding, "{}", expected_printing); } } diff --git a/cranelift/codegen/src/isa/mod.rs b/cranelift/codegen/src/isa/mod.rs index e92dc21627..f50cb83f9d 100644 --- a/cranelift/codegen/src/isa/mod.rs +++ b/cranelift/codegen/src/isa/mod.rs @@ -76,9 +76,6 @@ pub mod unwind; mod call_conv; -#[cfg(test)] -mod test_utils; - /// Returns a builder that can create a corresponding `TargetIsa` /// or `Err(LookupError::SupportDisabled)` if not enabled. macro_rules! isa_builder { diff --git a/cranelift/codegen/src/isa/s390x/inst/emit_tests.rs b/cranelift/codegen/src/isa/s390x/inst/emit_tests.rs index 15f32bed74..9d60355fd1 100644 --- a/cranelift/codegen/src/isa/s390x/inst/emit_tests.rs +++ b/cranelift/codegen/src/isa/s390x/inst/emit_tests.rs @@ -1,7 +1,6 @@ use crate::ir::MemFlags; use crate::isa::s390x::inst::*; use crate::isa::s390x::settings as s390x_settings; -use crate::isa::test_utils; use crate::settings; use alloc::vec::Vec; @@ -8112,12 +8111,10 @@ fn test_s390x_binemit() { let actual_printing = insn.show_rru(Some(&rru)); assert_eq!(expected_printing, actual_printing); - let mut sink = test_utils::TestCodeSink::new(); let mut buffer = MachBuffer::new(); insn.emit(&mut buffer, &emit_info, &mut Default::default()); let buffer = buffer.finish(); - buffer.emit(&mut sink); - let actual_encoding = &sink.stringify(); + let actual_encoding = &buffer.stringify_code_bytes(); assert_eq!(expected_encoding, actual_encoding); } } diff --git a/cranelift/codegen/src/isa/test_utils.rs b/cranelift/codegen/src/isa/test_utils.rs deleted file mode 100644 index ed5eed09b4..0000000000 --- a/cranelift/codegen/src/isa/test_utils.rs +++ /dev/null @@ -1,74 +0,0 @@ -// This is unused when no platforms with the new backend are enabled. -#![allow(dead_code)] - -use crate::binemit::{Addend, CodeOffset, CodeSink, Reloc}; -use crate::ir::{ExternalName, Opcode, SourceLoc, TrapCode}; - -use alloc::vec::Vec; -use std::string::String; - -pub struct TestCodeSink { - bytes: Vec, -} - -impl TestCodeSink { - /// Create a new TestCodeSink. - pub fn new() -> TestCodeSink { - TestCodeSink { bytes: vec![] } - } - - /// Return the code emitted to this sink as a hex string. - pub fn stringify(&self) -> String { - // This is pretty lame, but whatever .. - use std::fmt::Write; - let mut s = String::with_capacity(self.bytes.len() * 2); - for b in &self.bytes { - write!(&mut s, "{:02X}", b).unwrap(); - } - s - } -} - -impl CodeSink for TestCodeSink { - fn offset(&self) -> CodeOffset { - self.bytes.len() as CodeOffset - } - - fn put1(&mut self, x: u8) { - self.bytes.push(x); - } - - fn put2(&mut self, x: u16) { - self.bytes.push((x >> 0) as u8); - self.bytes.push((x >> 8) as u8); - } - - fn put4(&mut self, mut x: u32) { - for _ in 0..4 { - self.bytes.push(x as u8); - x >>= 8; - } - } - - fn put8(&mut self, mut x: u64) { - for _ in 0..8 { - self.bytes.push(x as u8); - x >>= 8; - } - } - - fn reloc_external( - &mut self, - _srcloc: SourceLoc, - _rel: Reloc, - _name: &ExternalName, - _addend: Addend, - ) { - } - - fn trap(&mut self, _code: TrapCode, _srcloc: SourceLoc) {} - - fn end_codegen(&mut self) {} - - fn add_call_site(&mut self, _opcode: Opcode, _srcloc: SourceLoc) {} -} diff --git a/cranelift/codegen/src/isa/x64/inst/emit_tests.rs b/cranelift/codegen/src/isa/x64/inst/emit_tests.rs index acb335b80b..e8f905bcc5 100644 --- a/cranelift/codegen/src/isa/x64/inst/emit_tests.rs +++ b/cranelift/codegen/src/isa/x64/inst/emit_tests.rs @@ -13,7 +13,6 @@ //! -- isa::x64::inst::emit_tests::test_x64_emit use super::*; -use crate::isa::test_utils; use crate::isa::x64; use alloc::vec::Vec; @@ -4460,7 +4459,6 @@ fn test_x64_emit() { // Check the printed text is as expected. let actual_printing = insn.show_rru(Some(&rru)); assert_eq!(expected_printing, actual_printing); - let mut sink = test_utils::TestCodeSink::new(); let mut buffer = MachBuffer::new(); insn.emit(&mut buffer, &emit_info, &mut Default::default()); @@ -4470,8 +4468,7 @@ fn test_x64_emit() { buffer.bind_label(label); let buffer = buffer.finish(); - buffer.emit(&mut sink); - let actual_encoding = &sink.stringify(); + let actual_encoding = &buffer.stringify_code_bytes(); assert_eq!(expected_encoding, actual_encoding, "{}", expected_printing); } } diff --git a/cranelift/codegen/src/machinst/buffer.rs b/cranelift/codegen/src/machinst/buffer.rs index 298ee90cd1..87c2566e9e 100644 --- a/cranelift/codegen/src/machinst/buffer.rs +++ b/cranelift/codegen/src/machinst/buffer.rs @@ -1420,6 +1420,17 @@ impl MachBufferFinalized { self.data.len() as CodeOffset } + /// Return the code in this mach buffer as a hex string for testing purposes. + pub fn stringify_code_bytes(&self) -> String { + // This is pretty lame, but whatever .. + use std::fmt::Write; + let mut s = String::with_capacity(self.data.len() * 2); + for b in &self.data { + write!(&mut s, "{:02X}", b).unwrap(); + } + s + } + /// Emit this buffer to the given CodeSink. pub fn emit(&self, sink: &mut CS) { // N.B.: we emit every section into the .text section as far as