Encoding:

EXTEND

11110

00000

1

00

rb

SHIFT

00110

rx

ry

sel = 2

SRL

10

5

5

1

2

3

5

3

3

3

2

Format:

MOVN rx, rb, ry

MIPS16e2

Move Conditional on Not Equal to Zero Extended

Purpose:

Move Conditional on Not Equal to Zero Extended

To conditionally move a GPR after testing a GPR value.

Description:

 if GPR[ry] != 0 then GPR[rx] = GPR[rb]

If the value in GPR ry is not equal to zero, then the contents of GPR rb are placed into GPR rx.

Restrictions:

In implementations prior to MIPS16e2, this instruction yielded unpredictable results. It would typically be executed as an SRL instruction.

Operation:

if GPR[XLat[ry]] != 0 then
   GPR[XLat[rx]] = GPR[XLat[rb]]
endif

Exceptions:

None

Programming Notes:

The non-zero value tested might be the condition true result from the SLT, SLTI, SLTU, and SLTIU comparison instructions or a boolean value read from memory.