# 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 Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and the contents of register RA. The byte in storage addressed by EA is loaded into RT[56:63]. RT[0:55] are set to 0. EA is placed into register RA. If RA=0, the instruction form is invalid. 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) Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and (RA|0). The halfword in storage addressed by EA is loaded into RT[48:63]. RT[0:47] are set to 0. 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 Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and the contents of register RA. The halfword in storage addressed by EA is loaded into RT[48:63]. RT[0:47] are set to 0. EA is placed into register RA. If RA=0, the instruction form is invalid. 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)) Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and (RA|0). The halfword in storage addressed by EA is loaded into RT[48:63]. RT[0:47] are filled with a copy of bit 0 of the loaded halfword. 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 Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and the contents of register RA. The halfword in storage addressed by EA is loaded into RT[48:63]. RT[0:47] are filled with a copy of bit 0 of the loaded halfword. EA is placed into register RA. If RA=0 or RA=RT, the instruction form is invalid. 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) Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and (RA|0). The word in storage addressed by EA is loaded into RT[32:63]. RT[0:31] are set to 0. 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 Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and the contents of register RA. The word in storage addressed by EA is loaded into RT[32:63]. RT[0:31] are set to 0. EA is placed into register RA. If RA=0 or RA=RT, the instruction form is invalid. 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)) Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and (RA|0). The word in storage addressed by EA is loaded into RT[32:63]. RT[0:31] are filled with a copy of bit 0 of the loaded word. 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 Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and the contents of register RA. The word in storage addressed by EA is loaded into RT[32:63]. RT[0:31] are filled with a copy of bit 0 of the loaded word. EA is placed into register RA. If RA=0 or RA=RT, the instruction form is invalid. 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) Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and (RA|0). The doubleword in storage addressed by EA is loaded into RT. 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 Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and (RA). The doubleword in storage addressed by EA is loaded into RT. EA is placed into register RA. If RA=0 or RA=RT, the instruction form is invalid. 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] Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and (RA|0). Bits 0:7 of the halfword in storage addressed by EA are loaded into RT[56:63]. Bits 8:15 of the halfword in storage addressed by EA are loaded into RT[48:55]. RT[0:47] are set to 0. 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]) Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and (RA|0). Bits 0:7 of the word in storage addressed by EA are loaded into RT[56:63]. Bits 8:15 of the word in storage addressed by EA are loaded into RT[48:55]. Bits 16:23 of the word in storage addressed by EA are loaded into RT[40:47]. Bits 24:31 of the word in storage addressed by EA are loaded into RT 32:39. RT[0:31] are set to 0. 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]) Description: Let the effective address (EA) be the sum of the contents of register RB shifted by (SH+1), and (RA|0). Bits 0:7 of the doubleword in storage addressed by EA are loaded into RT[56:63]. Bits 8:15 of the doubleword in storage addressed by EA are loaded into RT[48:55]. Bits 16:23 of the doubleword in storage addressed by EA are loaded into RT[40:47]. Bits 24:31 of the doubleword in storage addressed by EA are loaded into RT 32:39. Bits 32:39 of the doubleword in storage addressed by EA are loaded into RT[24:31]. Bits 40:47 of the doubleword in storage addressed by EA are loaded into RT[16:23]. Bits 48:55 of the doubleword in storage addressed by EA are loaded into RT[8:15]. Bits 56:63 of the doubleword in storage addressed by EA are loaded into RT[0:7]. Special Registers Altered: None