Encoding:

SPECIAL2

011100

base

index

rd

LWXS

00010

LXS

001000

6

5

5

5

5

6

Format:

LWXS rd, index(base)

SmartMIPS Crypto

Load Word Indexed, Scaled

Purpose:

Load Word Indexed, Scaled

To load a word from memory as a signed value, using scaled indexed addressing.

Description:

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.

Restrictions:

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.

Operation:

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

Exceptions:

TLB Refill, TLB Invalid, Bus Error, Address Error