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

Function FSUB_float

arch/arm64/disassembler/decode2.c:11612–11645  ·  view source on GitHub ↗

fsub_float.xml */

Source from the content-addressed store, hash-verified

11610
11611/* fsub_float.xml */
11612int FSUB_float(context *ctx, Instruction *instr)
11613{
11614 int rc = DECODE_STATUS_UNMATCHED;
11615 /* class iclass_float */
11616 /* M=0|0|S=0|11110|ftype=xx|1|Rm=xxxxx|opcode[3:1]=001|op=1|10|Rn=xxxxx|Rd=xxxxx */
11617 if((INSWORD & 0xFF20FC00)==0x1E203800) {
11618 decode_fields32(ENC_FSUB_H_FLOATDP2, ctx, instr);
11619 ctx->d = UINT(ctx->Rd);
11620 ctx->n = UINT(ctx->Rn);
11621 ctx->m = UINT(ctx->Rm);
11622 if(!ctx->ftype) {
11623 ctx->esize = 0x20;
11624 }
11625 else if(ctx->ftype==1) {
11626 ctx->esize = 0x40;
11627 }
11628 else if(ctx->ftype==2) {
11629 UNDEFINED;
11630 }
11631 else if(ctx->ftype==3) {
11632 if(HaveFP16Ext()) {
11633 ctx->esize = 0x10;
11634 }
11635 else {
11636 UNDEFINED;
11637 }
11638 }
11639 ctx->sub_op = (ctx->op==1);
11640 if(ctx->ftype==3) OK(ENC_FSUB_H_FLOATDP2);
11641 if(ctx->ftype==0) OK(ENC_FSUB_S_FLOATDP2);
11642 if(ctx->ftype==1) OK(ENC_FSUB_D_FLOATDP2);
11643 }
11644 return rc;
11645}
11646
11647/* gmi.xml */
11648int GMI(context *ctx, Instruction *instr)

Callers 1

decode_iclass_floatdp2Function · 0.85

Calls 1

decode_fields32Function · 0.85

Tested by

no test coverage detected