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

Function FMINP_advsimd_pair

arch/arm64/disassembler/decode2.c:8637–8671  ·  view source on GitHub ↗

fminp_advsimd_pair.xml */

Source from the content-addressed store, hash-verified

8635
8636/* fminp_advsimd_pair.xml */
8637int FMINP_advsimd_pair(context *ctx, Instruction *instr)
8638{
8639 int rc = DECODE_STATUS_UNMATCHED;
8640 /* class iclass_half */
8641 /* 01|U=0|11110|o1=1|sz=x|11000|opcode=01111|10|Rn=xxxxx|Rd=xxxxx */
8642 if((INSWORD & 0xFFBFFC00)==0x5EB0F800) {
8643 decode_fields32(ENC_FMINP_ASISDPAIR_ONLY_H, ctx, instr);
8644 if(!HaveFP16Ext()) {
8645 UNDEFINED;
8646 }
8647 ctx->d = UINT(ctx->Rd);
8648 ctx->n = UINT(ctx->Rn);
8649 ctx->esize = 0x10;
8650 if(ctx->sz==1) {
8651 UNDEFINED;
8652 }
8653 ctx->datasize = (ctx->esize) * (2);
8654 ctx->elements = 2;
8655 ctx->op = (ctx->o1==1) ? ReduceOp_FMIN : ReduceOp_FMAX;
8656 OK(ENC_FMINP_ASISDPAIR_ONLY_H);
8657 }
8658 /* class iclass_single_and_double */
8659 /* 01|U=1|11110|o1=1|sz=x|11000|opcode=01111|10|Rn=xxxxx|Rd=xxxxx */
8660 if((INSWORD & 0xFFBFFC00)==0x7EB0F800) {
8661 decode_fields32(ENC_FMINP_ASISDPAIR_ONLY_SD, ctx, instr);
8662 ctx->d = UINT(ctx->Rd);
8663 ctx->n = UINT(ctx->Rn);
8664 ctx->esize = (0x20) << (UINT(ctx->sz));
8665 ctx->datasize = (ctx->esize) * (2);
8666 ctx->elements = 2;
8667 ctx->op = (ctx->o1==1) ? ReduceOp_FMIN : ReduceOp_FMAX;
8668 OK(ENC_FMINP_ASISDPAIR_ONLY_SD);
8669 }
8670 return rc;
8671}
8672
8673/* fminp_advsimd_vec.xml */
8674int FMINP_advsimd_vec(context *ctx, Instruction *instr)

Callers 1

decode_iclass_asisdpairFunction · 0.85

Calls 1

decode_fields32Function · 0.85

Tested by

no test coverage detected