# Convert Declets To Binary Coded Decimal X-Form * cdtbcd RA,RS Pseudo-code: src <- [0]*64 src[64-XLEN:63] <- (RS) result <- [0]*64 do i = 0 to 1 n <- i * 32 result[n+0:n+7] <- 0 result[n+8:n+19] <- DPD_TO_BCD(src[n+12:n+21]) result[n+20:n+31] <- DPD_TO_BCD(src[n+22:n+31]) RA <- result[64-XLEN:63] Special Registers Altered: None # Add and Generate Sixes XO-Form * addg6s RT,RA,RB Pseudo-code: sum <- (0b0000 || (RA)) + (0b0000 || (RB)) carries <- sum ^ (0b0000 || (RA)) ^ (0b0000 || (RB)) ones <- [0b0001] * (XLEN / 4) nibbles_need_sixes <- ¬carries[0:XLEN-1] & ones RT <- nibbles_need_sixes * 0b0110 Special Registers Altered: None # Convert Binary Coded Decimal To Declets X-Form * cbcdtd RA,RS Pseudo-code: src <- [0]*64 src[64-XLEN:63] <- (RS) result <- [0]*64 do i = 0 to 1 n <- i * 32 result[n+0:n+11] <- 0 result[n+12:n+21] <- BCD_TO_DPD(src[n+8:n+19]) result[n+22:n+31] <- BCD_TO_DPD(src[n+20:n+31]) RA <- result[64-XLEN:63] Special Registers Altered: None