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

Function FCSEL_float

arch/arm64/disassembler/decode2.c:5935–5968  ·  view source on GitHub ↗

fcsel_float.xml */

Source from the content-addressed store, hash-verified

5933
5934/* fcsel_float.xml */
5935int FCSEL_float(context *ctx, Instruction *instr)
5936{
5937 int rc = DECODE_STATUS_UNMATCHED;
5938 /* class iclass_float */
5939 /* M=0|0|S=0|11110|ftype=xx|1|Rm=xxxxx|cond=xxxx|11|Rn=xxxxx|Rd=xxxxx */
5940 if((INSWORD & 0xFF200C00)==0x1E200C00) {
5941 decode_fields32(ENC_FCSEL_H_FLOATSEL, ctx, instr);
5942 ctx->d = UINT(ctx->Rd);
5943 ctx->n = UINT(ctx->Rn);
5944 ctx->m = UINT(ctx->Rm);
5945 if(!ctx->ftype) {
5946 ctx->datasize = 0x20;
5947 }
5948 else if(ctx->ftype==1) {
5949 ctx->datasize = 0x40;
5950 }
5951 else if(ctx->ftype==2) {
5952 UNDEFINED;
5953 }
5954 else if(ctx->ftype==3) {
5955 if(HaveFP16Ext()) {
5956 ctx->datasize = 0x10;
5957 }
5958 else {
5959 UNDEFINED;
5960 }
5961 }
5962 ctx->condition = ctx->cond;
5963 if(ctx->ftype==3) OK(ENC_FCSEL_H_FLOATSEL);
5964 if(ctx->ftype==0) OK(ENC_FCSEL_S_FLOATSEL);
5965 if(ctx->ftype==1) OK(ENC_FCSEL_D_FLOATSEL);
5966 }
5967 return rc;
5968}
5969
5970/* fcvtas_advsimd.xml */
5971int FCVTAS_advsimd(context *ctx, Instruction *instr)

Callers 1

decode_iclass_floatselFunction · 0.85

Calls 1

decode_fields32Function · 0.85

Tested by

no test coverage detected