You copied the Doc URL to your clipboard.


Form PC-relative address to 4KB page adds an immediate value that is shifted left by 12 bits, to the PC value to form a PC-relative address, with the bottom 12 bits masked out, and writes the result to the destination register.

integer d = UInt(Rd);
bits(64) imm;

imm = SignExtend(immhi:immlo:Zeros(12), 64);

Assembler Symbols


Is the 64-bit name of the general-purpose destination register, encoded in the "Rd" field.


Is the program label whose 4KB page address is to be calculated. Its offset from the page address of this instruction, in the range +/-4GB, is encoded as "immhi:immlo" times 4096.


bits(64) base = PC[];

base<11:0> = Zeros(12);

X[d] = base + imm;