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

Function CMLE_advsimd

arch/arm64/disassembler/decode2.c:2620–2676  ·  view source on GitHub ↗

cmle_advsimd.xml */

Source from the content-addressed store, hash-verified

2618
2619/* cmle_advsimd.xml */
2620int CMLE_advsimd(context *ctx, Instruction *instr)
2621{
2622 int rc = DECODE_STATUS_UNMATCHED;
2623 /* class iclass_sisd */
2624 /* 01|U=1|11110|size=xx|10000|opcode[4:1]=0100|op=1|10|Rn=xxxxx|Rd=xxxxx */
2625 if((INSWORD & 0xFF3FFC00)==0x7E209800) {
2626 decode_fields32(ENC_CMLE_ASISDMISC_Z, ctx, instr);
2627 ctx->d = UINT(ctx->Rd);
2628 ctx->n = UINT(ctx->Rn);
2629 if(ctx->size!=3) {
2630 UNDEFINED;
2631 }
2632 ctx->esize = (8) << (UINT(ctx->size));
2633 ctx->datasize = ctx->esize;
2634 ctx->elements = 1;
2635 if(!((ctx->op<<1)|ctx->U)) {
2636 ctx->comparison = CompareOp_GT;
2637 }
2638 else if(((ctx->op<<1)|ctx->U)==1) {
2639 ctx->comparison = CompareOp_GE;
2640 }
2641 else if(((ctx->op<<1)|ctx->U)==2) {
2642 ctx->comparison = CompareOp_EQ;
2643 }
2644 else if(((ctx->op<<1)|ctx->U)==3) {
2645 ctx->comparison = CompareOp_LE;
2646 }
2647 OK(ENC_CMLE_ASISDMISC_Z);
2648 }
2649 /* class iclass_simd */
2650 /* 0|Q=x|U=1|01110|size=xx|10000|opcode[4:1]=0100|op=1|10|Rn=xxxxx|Rd=xxxxx */
2651 if((INSWORD & 0xBF3FFC00)==0x2E209800) {
2652 decode_fields32(ENC_CMLE_ASIMDMISC_Z, ctx, instr);
2653 ctx->d = UINT(ctx->Rd);
2654 ctx->n = UINT(ctx->Rn);
2655 if(((ctx->size<<1)|ctx->Q)==6) {
2656 UNDEFINED;
2657 }
2658 ctx->esize = (8) << (UINT(ctx->size));
2659 ctx->datasize = (ctx->Q==1) ? 0x80 : 0x40;
2660 ctx->elements = ((ctx->esize) ? ((ctx->datasize) / (ctx->esize)) : 0);
2661 if(!((ctx->op<<1)|ctx->U)) {
2662 ctx->comparison = CompareOp_GT;
2663 }
2664 else if(((ctx->op<<1)|ctx->U)==1) {
2665 ctx->comparison = CompareOp_GE;
2666 }
2667 else if(((ctx->op<<1)|ctx->U)==2) {
2668 ctx->comparison = CompareOp_EQ;
2669 }
2670 else if(((ctx->op<<1)|ctx->U)==3) {
2671 ctx->comparison = CompareOp_LE;
2672 }
2673 OK(ENC_CMLE_ASIMDMISC_Z);
2674 }
2675 return rc;
2676}
2677

Callers 2

decode_iclass_asisdmiscFunction · 0.85
decode_iclass_asimdmiscFunction · 0.85

Calls 1

decode_fields32Function · 0.85

Tested by

no test coverage detected