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

Function FMLSL_advsimd_elt

arch/arm64/disassembler/decode2.c:9069–9115  ·  view source on GitHub ↗

fmlsl_advsimd_elt.xml */

Source from the content-addressed store, hash-verified

9067
9068/* fmlsl_advsimd_elt.xml */
9069int FMLSL_advsimd_elt(context *ctx, Instruction *instr)
9070{
9071 int rc = DECODE_STATUS_UNMATCHED;
9072 /* class iclass_fmlsl */
9073 /* 0|Q=x|U=0|01111|size[1]=1|sz=0|L=x|M=x|Rm=xxxx|opcode[3]=0|S=1|opcode[1:0]=00|H=x|0|Rn=xxxxx|Rd=xxxxx */
9074 if((INSWORD & 0xBFC0F400)==0xF804000) {
9075 decode_fields32(ENC_FMLSL_ASIMDELEM_LH, ctx, instr);
9076 if(!HaveFP16MulNoRoundingToFP32Ext()) {
9077 UNDEFINED;
9078 }
9079 ctx->d = UINT(ctx->Rd);
9080 ctx->n = UINT(ctx->Rn);
9081 ctx->m = UINT(ctx->Rm);
9082 if(ctx->sz==1) {
9083 UNDEFINED;
9084 }
9085 ctx->index = UINT(((ctx->H<<2)|(ctx->L<<1)|ctx->M));
9086 ctx->esize = 0x20;
9087 ctx->datasize = (ctx->Q==1) ? 0x80 : 0x40;
9088 ctx->elements = ((ctx->esize) ? ((ctx->datasize) / (ctx->esize)) : 0);
9089 ctx->sub_op = (ctx->S==1);
9090 ctx->part = 0;
9091 OK(ENC_FMLSL_ASIMDELEM_LH);
9092 }
9093 /* class iclass_fmlsl2 */
9094 /* 0|Q=x|U=1|01111|size[1]=1|sz=0|L=x|M=x|Rm=xxxx|opcode[3]=1|S=1|opcode[1:0]=00|H=x|0|Rn=xxxxx|Rd=xxxxx */
9095 if((INSWORD & 0xBFC0F400)==0x2F80C000) {
9096 decode_fields32(ENC_FMLSL2_ASIMDELEM_LH, ctx, instr);
9097 if(!HaveFP16MulNoRoundingToFP32Ext()) {
9098 UNDEFINED;
9099 }
9100 ctx->d = UINT(ctx->Rd);
9101 ctx->n = UINT(ctx->Rn);
9102 ctx->m = UINT(ctx->Rm);
9103 if(ctx->sz==1) {
9104 UNDEFINED;
9105 }
9106 ctx->index = UINT(((ctx->H<<2)|(ctx->L<<1)|ctx->M));
9107 ctx->esize = 0x20;
9108 ctx->datasize = (ctx->Q==1) ? 0x80 : 0x40;
9109 ctx->elements = ((ctx->esize) ? ((ctx->datasize) / (ctx->esize)) : 0);
9110 ctx->sub_op = (ctx->S==1);
9111 ctx->part = 1;
9112 OK(ENC_FMLSL2_ASIMDELEM_LH);
9113 }
9114 return rc;
9115}
9116
9117/* fmlsl_advsimd_vec.xml */
9118int FMLSL_advsimd_vec(context *ctx, Instruction *instr)

Callers 1

decode_iclass_asimdelemFunction · 0.85

Calls 1

decode_fields32Function · 0.85

Tested by

no test coverage detected