SPECIAL2 011100 |
base |
index |
rd |
LWXS 00010 |
LXS 001000 |
6 |
5 |
5 |
5 |
5 |
6 |
LWXS rd, index(base) |
SmartMIPS Crypto |
Load Word Indexed, Scaled |
Load Word Indexed, Scaled
To load a word from memory as a signed value, using scaled indexed addressing.
GPR[rd] = memory[GPR[base] + (GPR[index] × 4)]
The contents of GPR index is multiplied by 4 and the result is added to the contents of GPR base to form an effective address. The contents of the 32-bit word at the memory location specified by the aligned effective address are fetched, sign-extended to the GPR register length if necessary, and placed in GPR rd.
The effective address must be naturally-aligned. If either of the 2 least-significant bits of the address is non-zero, an
Address Error exception occurs.
vAddr = (GPR[index]29..0 || 02) + GPR[base] if vAddr1..0 != 02 then SignalException(AddressError) endif (pAddr, CCA) = AddressTranslation (vAddr, DATA, LOAD) memword = LoadMemory (CCA, WORD, pAddr, vAddr, DATA) GPR[rd] = memword
TLB Refill, TLB Invalid, Bus Error, Address Error