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

Function decode_iclass_floatcmp

arch/arm64/disassembler/decode1.c:2662–2686  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2660}
2661
2662int decode_iclass_floatcmp(context *ctx, Instruction *dec)
2663{
2664 uint32_t M=INSWORD>>31, S=(INSWORD>>29)&1, ptype=(INSWORD>>22)&3, op=(INSWORD>>14)&3, opcode2=INSWORD&0x1f;
2665 if(!M && !S && !ptype && !op && !opcode2) return FCMP_float(ctx, dec); // -> FCMP_S_floatcmp
2666 if(!M && !S && !ptype && !op && opcode2==8) return FCMP_float(ctx, dec); // -> FCMP_SZ_floatcmp
2667 if(!M && !S && !ptype && !op && opcode2==0x10) return FCMPE_float(ctx, dec); // -> FCMPE_S_floatcmp
2668 if(!M && !S && !ptype && !op && opcode2==0x18) return FCMPE_float(ctx, dec); // -> FCMPE_SZ_floatcmp
2669 if(!M && !S && ptype==1 && !op && !opcode2) return FCMP_float(ctx, dec); // -> FCMP_D_floatcmp
2670 if(!M && !S && ptype==1 && !op && opcode2==8) return FCMP_float(ctx, dec); // -> FCMP_DZ_floatcmp
2671 if(!M && !S && ptype==1 && !op && opcode2==0x10) return FCMPE_float(ctx, dec); // -> FCMPE_D_floatcmp
2672 if(!M && !S && ptype==1 && !op && opcode2==0x18) return FCMPE_float(ctx, dec); // -> FCMPE_DZ_floatcmp
2673 if(!M && !S && ptype==3 && !op && !opcode2 && HasFP16()) return FCMP_float(ctx, dec); // -> FCMP_H_floatcmp
2674 if(!M && !S && ptype==3 && !op && opcode2==8 && HasFP16()) return FCMP_float(ctx, dec); // -> FCMP_HZ_floatcmp
2675 if(!M && !S && ptype==3 && !op && opcode2==0x10 && HasFP16()) return FCMPE_float(ctx, dec); // -> FCMPE_H_floatcmp
2676 if(!M && !S && ptype==3 && !op && opcode2==0x18 && HasFP16()) return FCMPE_float(ctx, dec); // -> FCMPE_HZ_floatcmp
2677 if(ptype==2) UNALLOCATED(ENC_UNALLOCATED_17_FLOATCMP);
2678 if(opcode2&1) UNALLOCATED(ENC_UNALLOCATED_12_FLOATCMP);
2679 if((opcode2&2)==2) UNALLOCATED(ENC_UNALLOCATED_13_FLOATCMP);
2680 if((opcode2&4)==4) UNALLOCATED(ENC_UNALLOCATED_14_FLOATCMP);
2681 if(op&1) UNALLOCATED(ENC_UNALLOCATED_15_FLOATCMP);
2682 if((op&2)==2) UNALLOCATED(ENC_UNALLOCATED_16_FLOATCMP);
2683 if(S) UNALLOCATED(ENC_UNALLOCATED_10_FLOATCMP);
2684 if(M) UNALLOCATED(ENC_UNALLOCATED_11_FLOATCMP);
2685 UNMATCHED;
2686}
2687
2688int decode_iclass_floatccmp(context *ctx, Instruction *dec)
2689{

Callers 1

decode_specFunction · 0.85

Calls 2

FCMP_floatFunction · 0.85
FCMPE_floatFunction · 0.85

Tested by

no test coverage detected