MSA 011110 |
0001111110 |
cs |
rd |
ELM 011001 |
6 |
10 |
5 |
5 |
6 |
CFCMSA |
GPR Copy from MSA Control Register | |
CFCMSA rd,cs |
MSA |
GPR Copy from MSA Control Register |
GPR Copy from MSA Control Register
GPR value copied from MSA control register.
rd = signed(cs)
The sign extended content of MSA control register cs is copied to GPR rd.
The read operation returns ZERO if cs specifies a reserved register or a register that does not exist.
if cs = 0 then GPR[rd] = sign_extend(MSAIR, 64) elseif cs = 1 then GPR[rd] = sign_extend(MSACSR, 64) elseif MSAIRWRP = 1 then if cs = 2 then if not IsCoprocessorEnabled(0) then SignalException(CoprocessorUnusableException, 0) endif GPR[rd] = sign_extend(MSAAccess, 64) elseif cs = 3 then if not IsCoprocessorEnabled(0) then SignalException(CoprocessorUnusableException, 0) endif GPR[rd] = sign_extend(MSASave, 64) elseif cs = 4 then if not IsCoprocessorEnabled(0) then SignalException(CoprocessorUnusableException, 0) endif GPR[rd] = sign_extend(MSAModify, 64) elseif cs = 5 then if not IsCoprocessorEnabled(0) then SignalException(CoprocessorUnusableException, 0) endif GPR[rd] = sign_extend(MSARequest, 64) elseif cs = 6 then if not IsCoprocessorEnabled(0) then SignalException(CoprocessorUnusableException, 0) endif GPR[rd] = sign_extend(MSAMap, 64) elseif cs = 7 then if not IsCoprocessorEnabled(0) then SignalException(CoprocessorUnusableException, 0) endif GPR[rd] = sign_extend(MSAUnmap, 64) else GPR[rd] = 0 endif else GPR[rd] = 0 endif
Reserved Instruction Exception, MSA Disabled Exception. Coprocessor 0 Unusable Exception.