Assembly:

MOVEP dst1, dst2, src1, src2

nanoMIPS, not available in NMS

Move Pair

Purpose:

Move Pair. Copy value of register $src1 to register $dst1, and copy value of register $src2to register $dst2.

Availability:

nanoMIPS, not available in NMS

Format:

MOVEP

101111

rtz4[3]

rd2[0]

rtz4[2:0]

rsz4[3]

rd2[1]

rsz4[2:0]

6

1

1

3

1

1

3

dst1 = decode_gpr(rd2[1] @ rd2[0], 'gpr2.reg1')
dst2 = decode_gpr(rd2[1] @ rd2[0], 'gpr2.reg2')
src1 = decode_gpr(rsz4[3] @ rsz4[2:0], 'gpr4.zero')
src2 = decode_gpr(rtz4[3] @ rtz4[2:0], 'gpr4.zero')

MOVEP[REV]

111111

rt4[3]

rd2[0]

rt4[2:0]

rs4[3]

rd2[1]

rs4[2:0]

6

1

1

3

1

1

3

dst1 = decode_gpr(rs4[3] @ rs4[2:0], 'gpr4')
dst2 = decode_gpr(rt4[3] @ rt4[2:0], 'gpr4')
src1 = decode_gpr(rd2[1] @ rd2[0], 'gpr2.reg1')
src2 = decode_gpr(rd2[1] @ rd2[0], 'gpr2.reg2')

Operation:

if C0.Config5.NMS == 1:
    raise exception('RI')
if dst1 == src1 or dst1 == src2 or dst2 == src1 or dst2 == src2:
    GPR[dst1] = UNKNOWN
    GPR[dst2] = UNKNOWN
else:
    GPR[dst1] = GPR[src1]
    GPR[dst2] = GPR[src2]

The output register values are unpredictable if either of the output registers is also used as an input.

Exceptions:

Reserved Instruction on NMS cores.