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

Function decode_iclass_floatimm

arch/arm64/disassembler/decode1.c:2845–2860  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2843}
2844
2845int decode_iclass_floatimm(context *ctx, Instruction *dec)
2846{
2847 uint32_t M=INSWORD>>31, S=(INSWORD>>29)&1, ptype=(INSWORD>>22)&3, imm5=(INSWORD>>5)&0x1f;
2848 if(!M && !S && !ptype && !imm5) return FMOV_float_imm(ctx, dec); // -> FMOV_S_floatimm
2849 if(!M && !S && ptype==1 && !imm5) return FMOV_float_imm(ctx, dec); // -> FMOV_D_floatimm
2850 if(!M && !S && ptype==3 && !imm5 && HasFP16()) return FMOV_float_imm(ctx, dec); // -> FMOV_H_floatimm
2851 if(ptype==2) UNALLOCATED(ENC_UNALLOCATED_17_FLOATIMM);
2852 if(imm5&1) UNALLOCATED(ENC_UNALLOCATED_10_FLOATIMM);
2853 if((imm5&2)==2) UNALLOCATED(ENC_UNALLOCATED_11_FLOATIMM);
2854 if((imm5&4)==4) UNALLOCATED(ENC_UNALLOCATED_12_FLOATIMM);
2855 if((imm5&8)==8) UNALLOCATED(ENC_UNALLOCATED_13_FLOATIMM);
2856 if((imm5&0x10)==0x10) UNALLOCATED(ENC_UNALLOCATED_14_FLOATIMM);
2857 if(S) UNALLOCATED(ENC_UNALLOCATED_15_FLOATIMM);
2858 if(M) UNALLOCATED(ENC_UNALLOCATED_16_FLOATIMM);
2859 UNMATCHED;
2860}
2861
2862int decode_iclass_perm_undef(context *ctx, Instruction *dec)
2863{

Callers 1

decode_specFunction · 0.85

Calls 1

FMOV_float_immFunction · 0.85

Tested by

no test coverage detected