<!-- See Chapter 5. for additional information. -->
-# Convert Declets To Binary Coded Decimal
+[[!inline pagenames="openpower/isa/bcd/cdtbcd" raw="yes"]]
-X-Form
+[[!inline pagenames="openpower/isa/bcd/addg6s" raw="yes"]]
-* 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
-
-<!-- Checked March 2021 -->
+[[!inline pagenames="openpower/isa/bcd/cbcdtd" raw="yes"]]
--- /dev/null
+ 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
--- /dev/null
+# Convert Binary Coded Decimal To Declets
+
+X-Form
+
+* cbcdtd RA,RS
+
+Pseudo-code:
+
+[[!inline pagenames="openpower/isa/bcd/cbcdtd_code" raw="yes"]]
+
+Special Registers Altered:
+
+ None
+
+<!-- Checked March 2021 -->
--- /dev/null
+ 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]
--- /dev/null
+ 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]