1 <!-- https://libre-soc.org/openpower/prefix_codes/ -->
3 # [DRAFT] Prefix-code decode
7 * pcdec. RT,RA,RB,RC,once (Rc=1)
13 in_bits[0:63] <- (RC|0)
16 final_in_bits <- in_bits
17 final_rb_used <- rb_used
25 if rb_used | (_RB = 0) then
29 in_bits <- 0b1 || (RB)[0:62]
31 in_bits <- 0b0 || in_bits[0:62]
32 # walk the binary tree in `tree` from parent to the selected child
33 decoded <- decoded[1:7] || in_bit
35 if tree[63 - decoded] then
36 final_in_bits <- in_bits
37 final_rb_used <- rb_used
38 output[56 - 8 * out_byte:63 - 8 * out_byte] <- decoded
40 out_byte <- out_byte + 1
48 CR0 <- final_rb_used || 0b0 || (output = 0) || so_bit
50 Special Registers Altered: