summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--yjit/src/asm/mod.rs7
-rw-r--r--yjit/src/core.rs5
2 files changed, 12 insertions, 0 deletions
diff --git a/yjit/src/asm/mod.rs b/yjit/src/asm/mod.rs
index 44ae74d470..586b01243d 100644
--- a/yjit/src/asm/mod.rs
+++ b/yjit/src/asm/mod.rs
@@ -356,6 +356,13 @@ impl CodeBlock {
self.asm_comments.get(&pos)
}
+ pub fn remove_comments(&mut self, start_addr: CodePtr, end_addr: CodePtr) {
+ #[cfg(feature = "disasm")]
+ for addr in start_addr.into_usize()..end_addr.into_usize() {
+ self.asm_comments.remove(&addr);
+ }
+ }
+
pub fn clear_comments(&mut self) {
#[cfg(feature = "disasm")]
self.asm_comments.clear();
diff --git a/yjit/src/core.rs b/yjit/src/core.rs
index c0411a94a2..3b471e782e 100644
--- a/yjit/src/core.rs
+++ b/yjit/src/core.rs
@@ -1609,6 +1609,11 @@ fn regenerate_branch(cb: &mut CodeBlock, branch: &mut Branch) {
}
*/
+ // Remove old comments
+ if let (Some(start_addr), Some(end_addr)) = (branch.start_addr, branch.end_addr) {
+ cb.remove_comments(start_addr, end_addr)
+ }
+
let mut block = branch.block.borrow_mut();
let branch_terminates_block = branch.end_addr == block.end_addr;