
TM1300 Data Book
Philips Semiconductors
A-188
PRODUCT SPECIFICATION
Unsigned 16-bit load with displacement
SYNTAX
[ IF r
guard ] uld16d(d) rsrc1
→ rdest
FUNCTION
if r
guard then {
if PCSW.bytesex = LITTLE_ENDIAN then
bs
← 1
else
bs
← 0
temp<7:0>
← mem[rsrc1 + d + (1 ⊕ bs)]
temp<15:8>
← mem[rsrc1 + d + (0 ⊕ bs)]
r
dest
← zero_ext16to32(temp<15:0>)
}
ATTRIBUTES
Function unit
dmem
Operation code
197
Number of operands
1
Modier
7 bits
Modier range
–128..126 by 2
Latency
3
Issue slots
4, 5
DESCRIPTION
The uld16d operation loads the 16-bit memory value from the address computed by r
src1 + d, zero extends it to 32
bits, and writes the result in r
dest. The d value is an opcode modier, must be in the range –128 and 126 inclusive,
and must be a multiple of 2. If the memory address computed by r
src1 + d is not a multiple of 2, the result of uld16d
is undened but no exception will be raised. This load operation is performed as little-endian or big-endian depending
on the current setting of the bytesex bit in the PCSW.
The result of an access by uld16d to the MMIO address aperture is undened; access to the MMIO aperture is
dened only for 32-bit loads and stores.
The uld16d operation optionally takes a guard, specied in r
guard. If a guard is present, its LSB controls the
modication of the destination register and the occurrence of side effects. If the LSB of r
guard is 1, rdest is written and
the data cache status bits are updated if the addressed locations are cacheable. if the LSB of r
guard is 0, rdest is not
changed and uld16d has no side effects whatever.
EXAMPLES
Initial Values
Operation
Result
r10 = 0xd00, [0xd02] = 0x22,
[0xd03] = 0x11
uld16d(2) r10
→ r60
r60
← 0x00002211
r30 = 0, r20 = 0xd04, [0xd00] = 0x84,
[0xd01] = 0x33
IF r30 uld16d(-4) r20
→ r70
no change, since guard is false
r40 = 1, r20 = 0xd04, [0xd00] = 0x84,
[0xd01] = 0x33
IF r40 uld16d(-4) r20
→ r80
r80
← 0x00008433
r50 = 0xd01
uld16d(-4) r50
→ r90
r90 undened (0xd01 +(–4) is not a multiple
of 2)
SEE ALSO
uld16 ild16 ild16d uld16r
ild16r uld16x ild16x
uld16d