pub fn adc(lhs: u64, rhs: u64, carry: u64) -> (u64, u64)