diff options
Diffstat (limited to 'yjit/src/asm/mod.rs')
-rw-r--r-- | yjit/src/asm/mod.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/yjit/src/asm/mod.rs b/yjit/src/asm/mod.rs index 9f518398b7..b54fc362b4 100644 --- a/yjit/src/asm/mod.rs +++ b/yjit/src/asm/mod.rs @@ -1,3 +1,4 @@ +use std::fmt; use std::mem; #[cfg(feature = "asm_comments")] @@ -276,6 +277,17 @@ impl CodeBlock { } } +/// Produce hex string output from the bytes in a code block +impl<'a> fmt::LowerHex for CodeBlock { + fn fmt(&self, fmtr: &mut fmt::Formatter) -> fmt::Result { + for pos in 0..self.write_pos { + let byte = unsafe { self.mem_block.start_ptr().raw_ptr().add(pos).read() }; + fmtr.write_fmt(format_args!("{:02x}", byte))?; + } + Ok(()) + } +} + /// Wrapper struct so we can use the type system to distinguish /// Between the inlined and outlined code blocks pub struct OutlinedCb { |