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

Function FMUL_float

arch/arm64/disassembler/decode2.c:9921–9954  ·  view source on GitHub ↗

fmul_float.xml */

Source from the content-addressed store, hash-verified

9919
9920/* fmul_float.xml */
9921int FMUL_float(context *ctx, Instruction *instr)
9922{
9923 int rc = DECODE_STATUS_UNMATCHED;
9924 /* class iclass_float */
9925 /* M=0|0|S=0|11110|ftype=xx|1|Rm=xxxxx|op=0|opcode[2:0]=000|10|Rn=xxxxx|Rd=xxxxx */
9926 if((INSWORD & 0xFF20FC00)==0x1E200800) {
9927 decode_fields32(ENC_FMUL_H_FLOATDP2, ctx, instr);
9928 ctx->d = UINT(ctx->Rd);
9929 ctx->n = UINT(ctx->Rn);
9930 ctx->m = UINT(ctx->Rm);
9931 if(!ctx->ftype) {
9932 ctx->esize = 0x20;
9933 }
9934 else if(ctx->ftype==1) {
9935 ctx->esize = 0x40;
9936 }
9937 else if(ctx->ftype==2) {
9938 UNDEFINED;
9939 }
9940 else if(ctx->ftype==3) {
9941 if(HaveFP16Ext()) {
9942 ctx->esize = 0x10;
9943 }
9944 else {
9945 UNDEFINED;
9946 }
9947 }
9948 ctx->negated = (ctx->op==1);
9949 if(ctx->ftype==3) OK(ENC_FMUL_H_FLOATDP2);
9950 if(ctx->ftype==0) OK(ENC_FMUL_S_FLOATDP2);
9951 if(ctx->ftype==1) OK(ENC_FMUL_D_FLOATDP2);
9952 }
9953 return rc;
9954}
9955
9956/* fneg_advsimd.xml */
9957int FNEG_advsimd(context *ctx, Instruction *instr)

Callers 1

decode_iclass_floatdp2Function · 0.85

Calls 1

decode_fields32Function · 0.85

Tested by

no test coverage detected