From 7029dab0d1647fac0834a9ee6c66e872ed2010db Mon Sep 17 00:00:00 2001 From: lkcl Date: Fri, 21 Apr 2023 15:12:21 +0100 Subject: [PATCH] --- openpower/sv/rfc/ls011.mdwn | 187 ++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) diff --git a/openpower/sv/rfc/ls011.mdwn b/openpower/sv/rfc/ls011.mdwn index 516b012d4..4cb05c3e9 100644 --- a/openpower/sv/rfc/ls011.mdwn +++ b/openpower/sv/rfc/ls011.mdwn @@ -115,5 +115,192 @@ where the same pseudocode for `lbzu` is: RT <- ([0] * (XLEN-8)) || MEM(EA, 1) # load from RA+D RA <- EA # and update RA ``` +----- + +\newpage{} + +# Fixed-point Load with Post-Update + +Add the following additional Section to Fixed-Point Load Book I + +## Load Byte and Zero with Post-Update + +D-Form + +* lbzup RT,D(RA) + +Pseudo-code: + + EA <- (RA) + RT <- ([0] * (XLEN-8)) || MEM(EA, 1) + RA <- (RA) + EXTS(D) + +Special Registers Altered: + + None + +## Load Byte and Zero with Post-Update Indexed + +X-Form + +* lbzupx RT,RA,RB + +Pseudo-code: + + EA <- (RA) + RT <- ([0] * (XLEN-8)) || MEM(EA, 1) + RA <- (RA) + (RB) + +Special Registers Altered: + + None + +## Load Halfword and Zero with Post-Update + +D-Form + +* lhzup RT,D(RA) + +Pseudo-code: + + EA <- (RA) + RT <- ([0] * (XLEN-16)) || MEM(EA, 2) + RA <- (RA) + EXTS(D) + +Special Registers Altered: + + None + +## Load Halfword and Zero with Post-Update Indexed + +X-Form + +* lhzupx RT,RA,RB + +Pseudo-code: + + EA <- (RA) + RT <- ([0] * (XLEN-16)) || MEM(EA, 2) + RA <- (RA) + (RB) + +Special Registers Altered: + + None + +## Load Halfword Algebraic with Post-Update + +D-Form + +* lhaup RT,D(RA) + +Pseudo-code: + + EA <- (RA) + RT <- EXTS(MEM(EA, 2)) + RA <- (RA) + EXTS(D) + +Special Registers Altered: + + None + +## Load Halfword Algebraic with Post-Update Indexed + +X-Form + +* lhaupx RT,RA,RB + +Pseudo-code: + + EA <- (RA) + RT <- EXTS(MEM(EA, 2)) + RA <- (RA) + (RB) + +Special Registers Altered: + + None + +## Load Word and Zero with Post-Update + +D-Form + +* lwzup RT,D(RA) + +Pseudo-code: + + EA <- (RA) + RT <- [0]*32 || MEM(EA, 4) + RA <- (RA) + EXTS(D) + +Special Registers Altered: + + None + +## Load Word and Zero with Post-Update Indexed + +X-Form + +* lwzupx RT,RA,RB + +Pseudo-code: + + EA <- (RA) + RT <- [0] * 32 || MEM(EA, 4) + RA <- (RA) + (RB) + +Special Registers Altered: + + None + +## Load Word Algebraic with Post-Update Indexed + +X-Form + +* lwaupx RT,RA,RB + +Pseudo-code: + + EA <- (RA) + RT <- EXTS(MEM(EA, 4)) + RA <- (RA) + (RB) + +Special Registers Altered: + + None + +## Load Doubleword with Post-Update Indexed + +DS-Form + +* ldup RT,DS(RA) + +Pseudo-code: + + EA <- (RA) + RT <- MEM(EA, 8) + RA <- (RA) + EXTS(DS || 0b00) + +Special Registers Altered: + + None + +## Load Doubleword with Post-Update Indexed + +X-Form + +* ldupx RT,RA,RB + +Pseudo-code: + + EA <- (RA) + RT <- MEM(EA, 8) + RA <- (RA) + (RB) + +Special Registers Altered: + + None + +----- + +\newpage{} [[!tag opf_rfc]] -- 2.30.2