Assembly:

ADDIUPC rt, imm

nanoMIPS, availability varies by format.

Add Immediate (Untrapped) to PC

Purpose:

Add Immediate (Untrapped) to PC. Compute address by adding immediate value imm to thePC and placing the result in register $rt, not trapping on overflow.

Availability:

nanoMIPS, availability varies by format.

Format:

ADDIUPC[32], not available in P64 mode

000001

rt

s[20:1]

s[21]

6

5

20

1

if pointers_are_64_bits():
    raise behaves_like('DADDIUPC[32]')
s = sign_extend(s[21] @ s[20:1] @ '0')
imm = s + 4

ADDIUPC[48], not available in NMS, not available in P64 mode

011000

rt

00011

s[15:0]

s[31:16]

6

5

5

16

16

if C0.Config5.NMS == 1:
    raise exception('RI')
if pointers_are_64_bits():
    raise behaves_like('DADDIUPC[48]')
s = sign_extend(s[31:16] @ s[15:0])
imm = s + 6

Operation:

GPR[rt] = effective_address(CPU.next_pc, s)

Exceptions:

Reserved Instruction for ADDIUPC[48] format on NMS cores.