MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / DMB

Function DMB

arch/arm64/disassembler/decode2.c:3421–3456  ·  view source on GitHub ↗

dmb.xml */

Source from the content-addressed store, hash-verified

3419
3420/* dmb.xml */
3421int 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 */
3459int DRPS(context *ctx, Instruction *instr)

Callers 1

decode_iclass_barriersFunction · 0.85

Calls 1

decode_fields32Function · 0.85

Tested by

no test coverage detected