summaryrefslogtreecommitdiff
path: root/zjit/src/asm/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'zjit/src/asm/mod.rs')
-rw-r--r--zjit/src/asm/mod.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/zjit/src/asm/mod.rs b/zjit/src/asm/mod.rs
index a7f2705af1..0b571f9aff 100644
--- a/zjit/src/asm/mod.rs
+++ b/zjit/src/asm/mod.rs
@@ -1,5 +1,5 @@
use std::collections::BTreeMap;
-//use std::fmt;
+use std::fmt;
use std::rc::Rc;
use std::cell::RefCell;
use std::mem;
@@ -260,6 +260,18 @@ impl CodeBlock {
}
}
+/// Produce hex string output from the bytes in a code block
+impl fmt::LowerHex for CodeBlock {
+ fn fmt(&self, fmtr: &mut fmt::Formatter) -> fmt::Result {
+ for pos in 0..self.write_pos {
+ let mem_block = &*self.mem_block.borrow();
+ let byte = unsafe { mem_block.start_ptr().raw_ptr(mem_block).add(pos).read() };
+ fmtr.write_fmt(format_args!("{:02x}", byte))?;
+ }
+ Ok(())
+ }
+}
+
#[cfg(test)]
impl CodeBlock {
/// Stubbed CodeBlock for testing. Can't execute generated code.