diff --git a/crates/cpu/src/unit/alu_branch.rs b/crates/cpu/src/unit/alu_branch.rs index 38c302f..14b4745 100644 --- a/crates/cpu/src/unit/alu_branch.rs +++ b/crates/cpu/src/unit/alu_branch.rs @@ -245,14 +245,12 @@ fn add_sub( #[hdl] fn logical_flags( global_state: Expr, - pc: Expr>, mop: Expr, PRegNum>>, src_values: Expr, { COMMON_MOP_SRC_LEN }>>, ) -> Expr> { #[hdl] - let GlobalState { flags_mode } = global_state; - // TODO: finish - PRegValue::zeroed().to_trace_as_string() + let GlobalState { flags_mode: _ } = global_state; + LogicalFlagsMOp::operation(mop, src_values.map(|v| *v)).to_trace_as_string() } #[hdl] @@ -896,10 +894,7 @@ pub fn alu_branch(config: PhantomConst, unit_index: usize) { ); } AluBranchMOp::<_, _>::LogicalFlags(mop) => { - connect( - dest_value, - logical_flags(global_state, mop_instance.pc, mop, src_values), - ); + connect(dest_value, logical_flags(global_state, mop, src_values)); } AluBranchMOp::<_, _>::Logical(mop) => { connect(