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

Function FNMUL_float

arch/arm64/disassembler/decode2.c:10116–10149  ·  view source on GitHub ↗

fnmul_float.xml */

Source from the content-addressed store, hash-verified

10114
10115/* fnmul_float.xml */
10116int FNMUL_float(context *ctx, Instruction *instr)
10117{
10118 int rc = DECODE_STATUS_UNMATCHED;
10119 /* class iclass_float */
10120 /* M=0|0|S=0|11110|ftype=xx|1|Rm=xxxxx|op=1|opcode[2:0]=000|10|Rn=xxxxx|Rd=xxxxx */
10121 if((INSWORD & 0xFF20FC00)==0x1E208800) {
10122 decode_fields32(ENC_FNMUL_H_FLOATDP2, ctx, instr);
10123 ctx->d = UINT(ctx->Rd);
10124 ctx->n = UINT(ctx->Rn);
10125 ctx->m = UINT(ctx->Rm);
10126 if(!ctx->ftype) {
10127 ctx->esize = 0x20;
10128 }
10129 else if(ctx->ftype==1) {
10130 ctx->esize = 0x40;
10131 }
10132 else if(ctx->ftype==2) {
10133 UNDEFINED;
10134 }
10135 else if(ctx->ftype==3) {
10136 if(HaveFP16Ext()) {
10137 ctx->esize = 0x10;
10138 }
10139 else {
10140 UNDEFINED;
10141 }
10142 }
10143 ctx->negated = (ctx->op==1);
10144 if(ctx->ftype==3) OK(ENC_FNMUL_H_FLOATDP2);
10145 if(ctx->ftype==0) OK(ENC_FNMUL_S_FLOATDP2);
10146 if(ctx->ftype==1) OK(ENC_FNMUL_D_FLOATDP2);
10147 }
10148 return rc;
10149}
10150
10151/* frecpe_advsimd.xml */
10152int FRECPE_advsimd(context *ctx, Instruction *instr)

Callers 1

decode_iclass_floatdp2Function · 0.85

Calls 1

decode_fields32Function · 0.85

Tested by

no test coverage detected