msr_reg.xml */
| 18182 | |
| 18183 | /* msr_reg.xml */ |
| 18184 | int MSR_reg(context *ctx, Instruction *instr) |
| 18185 | { |
| 18186 | int rc = DECODE_STATUS_UNMATCHED; |
| 18187 | /* class iclass_system */ |
| 18188 | /* 1101010100|L=0|op0[1]=1|o0=x|op1=xxx|CRn=xxxx|CRm=xxxx|op2=xxx|Rt=xxxxx */ |
| 18189 | if((INSWORD & 0xFFF00000)==0xD5100000) { |
| 18190 | decode_fields32(ENC_MSR_SR_SYSTEMMOVE, ctx, instr); |
| 18191 | CheckSystemAccess(((1<<1)|ctx->o0),ctx->op1,ctx->CRn,ctx->CRm,ctx->op2,ctx->Rt,ctx->L); |
| 18192 | ctx->t = UINT(ctx->Rt); |
| 18193 | ctx->sys_op0 = 2+UINT(ctx->o0); |
| 18194 | ctx->sys_op1 = UINT(ctx->op1); |
| 18195 | ctx->sys_op2 = UINT(ctx->op2); |
| 18196 | ctx->sys_crn = UINT(ctx->CRn); |
| 18197 | ctx->sys_crm = UINT(ctx->CRm); |
| 18198 | ctx->read = (ctx->L==1); |
| 18199 | OK(ENC_MSR_SR_SYSTEMMOVE); |
| 18200 | } |
| 18201 | return rc; |
| 18202 | } |
| 18203 | |
| 18204 | /* msub.xml */ |
| 18205 | int MSUB(context *ctx, Instruction *instr) |
no test coverage detected