Move Predicates Instructionmov pr
Instruction Type I
Format
(qp) mov r1 = pr from_form
(qp) mov pr = r2, mask17 to_form
(qp) mov pr.rot = imm44 to_rotate_form
Description
The source operand is copied to the destination register.
For moving the predicates to a GR, PR i is copied to bit position i within GR r1.
For moving to the predicates, the source can either be a general register, or an immediate value. In the to_form, the source operand is GR r2 and only those predicates specified by the immediate value mask17 are written. The value mask17 is encoded in the instruction in an imm16 field such that: imm16 = mask17 >> 1. Predicate register 0 is always one. The mask17 value is sign extended. The most significant bit of mask17, therefore, is the mask bit for all of the rotating predicates. If there is a deferred exception for GR r2 (the NaT bit is 1), a Register NaT Consumption fault is taken.
In the to_rotate_form, only the 48 rotating predicates can be written. The source operand is taken from the imm44 operand (which is encoded in the instruction in an imm28 field, such that: imm28 = imm44 >> 16). The low 16-bits correspond to the static predicates. The immediate is sign extended to set the top 21 predicates. Bit position i in the source operand is copied to PR i.
This instruction operates as if the predicate rotation base in the Current Frame Marker (CFM.rrb.pr) were zero.
mov ar - Move Application Register Instruction
mov br - Move Branch Register Instruction
mov fr - Move Floating-point Register Instruction
mov gr - Move General Register Instruction
mov imm - Move Immediate Instruction
mov indirect - Move Indirect Register Instruction
mov psr.um - Move User Mask Instruction
move cr - Move Control Register Instruction
move psr - Move Processor Status Register Instruction