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

Function FMOV_float_imm

arch/arm64/disassembler/decode2.c:9560–9591  ·  view source on GitHub ↗

fmov_float_imm.xml */

Source from the content-addressed store, hash-verified

9558
9559/* fmov_float_imm.xml */
9560int FMOV_float_imm(context *ctx, Instruction *instr)
9561{
9562 int rc = DECODE_STATUS_UNMATCHED;
9563 /* class iclass_imm8f */
9564 /* M=0|0|S=0|11110|ftype=xx|1|imm8=xxxxxxxx|100|imm5=00000|Rd=xxxxx */
9565 if((INSWORD & 0xFF201FE0)==0x1E201000) {
9566 decode_fields32(ENC_FMOV_H_FLOATIMM, ctx, instr);
9567 ctx->d = UINT(ctx->Rd);
9568 if(!ctx->ftype) {
9569 ctx->datasize = 0x20;
9570 }
9571 else if(ctx->ftype==1) {
9572 ctx->datasize = 0x40;
9573 }
9574 else if(ctx->ftype==2) {
9575 UNDEFINED;
9576 }
9577 else if(ctx->ftype==3) {
9578 if(HaveFP16Ext()) {
9579 ctx->datasize = 0x10;
9580 }
9581 else {
9582 UNDEFINED;
9583 }
9584 }
9585 ctx->imm = VFPExpandImm(ctx->imm8,8);
9586 if(ctx->ftype==3) OK(ENC_FMOV_H_FLOATIMM);
9587 if(ctx->ftype==0) OK(ENC_FMOV_S_FLOATIMM);
9588 if(ctx->ftype==1) OK(ENC_FMOV_D_FLOATIMM);
9589 }
9590 return rc;
9591}
9592
9593/* fmsub_float.xml */
9594int FMSUB_float(context *ctx, Instruction *instr)

Callers 1

decode_iclass_floatimmFunction · 0.85

Calls 2

decode_fields32Function · 0.85
VFPExpandImmFunction · 0.85

Tested by

no test coverage detected