dmb.xml */
| 3419 | |
| 3420 | /* dmb.xml */ |
| 3421 | int DMB(context *ctx, Instruction *instr) |
| 3422 | { |
| 3423 | int rc = DECODE_STATUS_UNMATCHED; |
| 3424 | /* class iclass_system */ |
| 3425 | /* 1101010100|L=0|op0=00|op1=011|CRn=0011|CRm=xxxx|op2[2]=1|opc=01|Rt=11111 */ |
| 3426 | if((INSWORD & 0xFFFFF0FF)==0xD50330BF) { |
| 3427 | decode_fields32(ENC_DMB_BO_BARRIERS, ctx, instr); |
| 3428 | if(!SLICE(ctx->CRm,3,2)) { |
| 3429 | ctx->domain = MBReqDomain_OuterShareable; |
| 3430 | } |
| 3431 | else if(SLICE(ctx->CRm,3,2)==1) { |
| 3432 | ctx->domain = MBReqDomain_Nonshareable; |
| 3433 | } |
| 3434 | else if(SLICE(ctx->CRm,3,2)==2) { |
| 3435 | ctx->domain = MBReqDomain_InnerShareable; |
| 3436 | } |
| 3437 | else if(SLICE(ctx->CRm,3,2)==3) { |
| 3438 | ctx->domain = MBReqDomain_FullSystem; |
| 3439 | } |
| 3440 | if(!SLICE(ctx->CRm,1,0)) { |
| 3441 | ctx->types = MBReqTypes_All; |
| 3442 | ctx->domain = MBReqDomain_FullSystem; |
| 3443 | } |
| 3444 | else if(SLICE(ctx->CRm,1,0)==1) { |
| 3445 | ctx->types = MBReqTypes_Reads; |
| 3446 | } |
| 3447 | else if(SLICE(ctx->CRm,1,0)==2) { |
| 3448 | ctx->types = MBReqTypes_Writes; |
| 3449 | } |
| 3450 | else if(SLICE(ctx->CRm,1,0)==3) { |
| 3451 | ctx->types = MBReqTypes_All; |
| 3452 | } |
| 3453 | OK(ENC_DMB_BO_BARRIERS); |
| 3454 | } |
| 3455 | return rc; |
| 3456 | } |
| 3457 | |
| 3458 | /* drps.xml */ |
| 3459 | int DRPS(context *ctx, Instruction *instr) |
no test coverage detected