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

Function FADD_float

arch/arm64/disassembler/decode2.c:4646–4679  ·  view source on GitHub ↗

fadd_float.xml */

Source from the content-addressed store, hash-verified

4644
4645/* fadd_float.xml */
4646int FADD_float(context *ctx, Instruction *instr)
4647{
4648 int rc = DECODE_STATUS_UNMATCHED;
4649 /* class iclass_float */
4650 /* M=0|0|S=0|11110|ftype=xx|1|Rm=xxxxx|opcode[3:1]=001|op=0|10|Rn=xxxxx|Rd=xxxxx */
4651 if((INSWORD & 0xFF20FC00)==0x1E202800) {
4652 decode_fields32(ENC_FADD_H_FLOATDP2, ctx, instr);
4653 ctx->d = UINT(ctx->Rd);
4654 ctx->n = UINT(ctx->Rn);
4655 ctx->m = UINT(ctx->Rm);
4656 if(!ctx->ftype) {
4657 ctx->esize = 0x20;
4658 }
4659 else if(ctx->ftype==1) {
4660 ctx->esize = 0x40;
4661 }
4662 else if(ctx->ftype==2) {
4663 UNDEFINED;
4664 }
4665 else if(ctx->ftype==3) {
4666 if(HaveFP16Ext()) {
4667 ctx->esize = 0x10;
4668 }
4669 else {
4670 UNDEFINED;
4671 }
4672 }
4673 ctx->sub_op = (ctx->op==1);
4674 if(ctx->ftype==3) OK(ENC_FADD_H_FLOATDP2);
4675 if(ctx->ftype==0) OK(ENC_FADD_S_FLOATDP2);
4676 if(ctx->ftype==1) OK(ENC_FADD_D_FLOATDP2);
4677 }
4678 return rc;
4679}
4680
4681/* fcadd_advsimd_vec.xml */
4682int FCADD_advsimd_vec(context *ctx, Instruction *instr)

Callers 1

decode_iclass_floatdp2Function · 0.85

Calls 1

decode_fields32Function · 0.85

Tested by

no test coverage detected