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

Function decode_iclass_asimdins

arch/arm64/disassembler/decode1.c:1539–1558  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1537}
1538
1539int decode_iclass_asimdins(context *ctx, Instruction *dec)
1540{
1541 uint32_t Q=(INSWORD>>30)&1, op=(INSWORD>>29)&1, imm5=(INSWORD>>16)&0x1f, imm4=(INSWORD>>11)&15;
1542 if(Q && !op && (imm5&15)==8 && imm4==7) return UMOV_advsimd(ctx, dec); // -> UMOV_asimdins_X_x
1543 if(!Q && !op && imm4==3) UNALLOCATED(ENC_UNALLOCATED_17_ASIMDINS);
1544 if(!Q && !op && imm4==5) return SMOV_advsimd(ctx, dec); // -> SMOV_asimdins_W_w
1545 if(!Q && !op && imm4==7) return UMOV_advsimd(ctx, dec); // -> UMOV_asimdins_W_w
1546 if(Q && !op && imm4==3) return INS_advsimd_gen(ctx, dec); // -> INS_asimdins_IR_r
1547 if(Q && !op && imm4==5) return SMOV_advsimd(ctx, dec); // -> SMOV_asimdins_X_x
1548 if(!op && !imm4) return DUP_advsimd_elt(ctx, dec); // -> DUP_asimdins_DV_v
1549 if(!op && imm4==1) return DUP_advsimd_gen(ctx, dec); // -> DUP_asimdins_DR_r
1550 if(!op && imm4==2) UNALLOCATED(ENC_UNALLOCATED_15_ASIMDINS);
1551 if(!op && imm4==4) UNALLOCATED(ENC_UNALLOCATED_18_ASIMDINS);
1552 if(!op && imm4==6) UNALLOCATED(ENC_UNALLOCATED_21_ASIMDINS);
1553 if(!(imm5&15)) UNALLOCATED(ENC_UNALLOCATED_11_ASIMDINS);
1554 if(!op && (imm4&8)==8) UNALLOCATED(ENC_UNALLOCATED_24_ASIMDINS);
1555 if(!Q && op) UNALLOCATED(ENC_UNALLOCATED_12_ASIMDINS);
1556 if(Q && op) return INS_advsimd_elt(ctx, dec); // -> INS_asimdins_IV_v
1557 UNMATCHED;
1558}
1559
1560int decode_iclass_asimdext(context *ctx, Instruction *dec)
1561{

Callers 1

decode_specFunction · 0.85

Calls 6

UMOV_advsimdFunction · 0.85
SMOV_advsimdFunction · 0.85
INS_advsimd_genFunction · 0.85
DUP_advsimd_eltFunction · 0.85
DUP_advsimd_genFunction · 0.85
INS_advsimd_eltFunction · 0.85

Tested by

no test coverage detected