summaryrefslogtreecommitdiff
path: root/src/stages
diff options
context:
space:
mode:
authorBen Bridle <ben@derelict.engineering>2025-03-25 11:03:03 +1300
committerBen Bridle <ben@derelict.engineering>2025-03-25 11:03:03 +1300
commit448e6f93d4ac6ae4b592d2dc8c3f98230f196e6a (patch)
treec0122331765eb9f289b0dd3570182c9f9139ef49 /src/stages
parent942c05cc232db905a0ea31b471edb824f0cc931c (diff)
downloadbedrock-asm-448e6f93d4ac6ae4b592d2dc8c3f98230f196e6a.zip
Fix label definition issue
Label definitions were being gathered in the bytecode stage, but then were incorrectly dropped instead of being used.
Diffstat (limited to 'src/stages')
-rw-r--r--src/stages/bytecode.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/stages/bytecode.rs b/src/stages/bytecode.rs
index db6ff6d..4b50327 100644
--- a/src/stages/bytecode.rs
+++ b/src/stages/bytecode.rs
@@ -38,12 +38,14 @@ impl<'a> BytecodeGenerator<'a> {
let mut labels = HashMap::new();
for (name, definition) in definitions {
if let DefinitionKind::LabelDefinition = definition.kind {
- labels.insert(name, LabelInformation { address: 0, slots: Vec::new() });
+ let key = name.to_string();
+ let value = LabelInformation { address: 0, slots: Vec::new() };
+ labels.insert(key, value);
}
}
Self {
definitions,
- labels: HashMap::new(),
+ labels,
stack: Vec::new(),
bytecode: Vec::new(),
}