From fbd9d02d0ca614802828117687cfd791c10a053b Mon Sep 17 00:00:00 2001 From: Ray Redondo Date: Mon, 22 Jan 2024 23:25:03 -0600 Subject: [PATCH] feat(xlang-backend-mc): support conditional branching --- xlang/xlang_backend/src/mc.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xlang/xlang_backend/src/mc.rs b/xlang/xlang_backend/src/mc.rs index cee645af..0e9ea668 100644 --- a/xlang/xlang_backend/src/mc.rs +++ b/xlang/xlang_backend/src/mc.rs @@ -210,6 +210,8 @@ pub enum MCInsn { /// Wdith of the source value old_width: u16, }, + /// Conditional Branch + Branch(String, xlang::ir::BranchCondition, MaybeResolved), } impl Default for MCInsn { @@ -486,7 +488,8 @@ impl FunctionRawCodegen for MCFunctionCodegen { } fn branch(&mut self, target: u32, condition: xlang::ir::BranchCondition, val: Self::Loc) { - todo!("branch {} @{}: {:?}", condition, target, val) + let targ = format!("{}._T{}", self.fn_name, target); + self.mc_insns.push(MCInsn::Branch(targ, condition, val)); } fn branch_compare(