# Load Byte and Zero Shifted Indexed X-Form * lbzsx RT,RA,RB,SH Pseudo-code: b <- (RA|0) EA <- b + (RB) << (SH+1) RT <- ([0] * (XLEN-8)) || MEM(EA, 1) Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and (RA|0). The byte in storage addressed by EA is loaded into RT[56:63]. RT[0:55] are set to 0. Special Registers Altered: None # Load Byte and Zero Shifted with Update Indexed X-Form * lbzsux RT,RA,RB,SH Pseudo-code: EA <- (RA) + (RB) << (SH+1) RT <- ([0] * (XLEN-8)) || MEM(EA, 1) RA <- EA Special Registers Altered: None # Load Halfword and Zero Shifted Indexed X-Form * lhzsx RT,RA,RB,SH Pseudo-code: b <- (RA|0) EA <- b + (RB) << (SH+1) RT <- ([0] * (XLEN-16)) || MEM(EA, 2) Special Registers Altered: None # Load Halfword and Zero Shifted with Update Indexed X-Form * lhzsux RT,RA,RB,SH Pseudo-code: EA <- (RA) + (RB) << (SH+1) RT <- ([0] * (XLEN-16)) || MEM(EA, 2) RA <- EA Special Registers Altered: None # Load Halfword Algebraic Shifted Indexed X-Form * lhasx RT,RA,RB,SH Pseudo-code: b <- (RA|0) EA <- b + (RB) << (SH+1) RT <- EXTS(MEM(EA, 2)) Special Registers Altered: None # Load Halfword Algebraic Shifted with Update Indexed X-Form * lhasux RT,RA,RB,SH Pseudo-code: EA <- (RA) + (RB) << (SH+1) RT <- EXTS(MEM(EA, 2)) RA <- EA Special Registers Altered: None # Load Word and Zero Shifted Indexed X-Form * lwzsx RT,RA,RB,SH Pseudo-code: b <- (RA|0) EA <- b + (RB) << (SH+1) RT <- [0] * 32 || MEM(EA, 4) Special Registers Altered: None # Load Word and Zero Shifted with Update Indexed X-Form * lwzsux RT,RA,RB,SH Pseudo-code: EA <- (RA) + (RB) << (SH+1) RT <- [0] * 32 || MEM(EA, 4) RA <- EA Special Registers Altered: None # Load Word Algebraic Shifted Indexed X-Form * lwasx RT,RA,RB,SH Pseudo-code: b <- (RA|0) EA <- b + (RB) << (SH+1) RT <- EXTS(MEM(EA, 4)) Special Registers Altered: None # Load Word Algebraic Shifted with Update Indexed X-Form * lwasux RT,RA,RB,SH Pseudo-code: EA <- (RA) + (RB) << (SH+1) RT <- EXTS(MEM(EA, 4)) RA <- EA Special Registers Altered: None # Load Doubleword Shifted Indexed X-Form * ldsx RT,RA,RB,SH Pseudo-code: b <- (RA|0) EA <- b + (RB) << (SH+1) RT <- MEM(EA, 8) Special Registers Altered: None # Load Doubleword Shifted with Update Indexed X-Form * ldsux RT,RA,RB,SH Pseudo-code: EA <- (RA) + (RB) << (SH+1) RT <- MEM(EA, 8) RA <- EA Special Registers Altered: None # Load Halfword Byte-Reverse Shifted Indexed X-Form * lhbrsx RT,RA,RB,SH Pseudo-code: b <- (RA|0) EA <- b + (RB) << (SH+1) load_data <- MEM(EA, 2) RT <- [0]*48 || load_data[8:15] || load_data[0:7] Special Registers Altered: None # Load Word Byte-Reverse Shifted Indexed X-Form * lwbrsx RT,RA,RB,SH Pseudo-code: b <- (RA|0) EA <- b + (RB) << (SH+1) load_data <- MEM(EA, 4) RT <- ([0] * 32 || load_data[24:31] || load_data[16:23] || load_data[8:15] || load_data[0:7]) Special Registers Altered: None # Load Doubleword Byte-Reverse Shifted Indexed X-Form * ldbrsx RT,RA,RB,SH Pseudo-code: b <- (RA|0) EA <- b + (RB) << (SH+1) load_data <- MEM(EA, 8) RT <- (load_data[56:63] || load_data[48:55] || load_data[40:47] || load_data[32:39] || load_data[24:31] || load_data[16:23] || load_data[8:15] || load_data[0:7]) Special Registers Altered: None