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

Function FADDP_advsimd_pair

arch/arm64/disassembler/decode2.c:4531–4565  ·  view source on GitHub ↗

faddp_advsimd_pair.xml */

Source from the content-addressed store, hash-verified

4529
4530/* faddp_advsimd_pair.xml */
4531int FADDP_advsimd_pair(context *ctx, Instruction *instr)
4532{
4533 int rc = DECODE_STATUS_UNMATCHED;
4534 /* class iclass_half */
4535 /* 01|U=0|11110|size[1]=0|sz=x|11000|opcode=01101|10|Rn=xxxxx|Rd=xxxxx */
4536 if((INSWORD & 0xFFBFFC00)==0x5E30D800) {
4537 decode_fields32(ENC_FADDP_ASISDPAIR_ONLY_H, ctx, instr);
4538 if(!HaveFP16Ext()) {
4539 UNDEFINED;
4540 }
4541 ctx->d = UINT(ctx->Rd);
4542 ctx->n = UINT(ctx->Rn);
4543 ctx->esize = 0x10;
4544 if(ctx->sz==1) {
4545 UNDEFINED;
4546 }
4547 ctx->datasize = (ctx->esize) * (2);
4548 ctx->elements = 2;
4549 ctx->op = ReduceOp_FADD;
4550 OK(ENC_FADDP_ASISDPAIR_ONLY_H);
4551 }
4552 /* class iclass_single_and_double */
4553 /* 01|U=1|11110|size[1]=0|sz=x|11000|opcode=01101|10|Rn=xxxxx|Rd=xxxxx */
4554 if((INSWORD & 0xFFBFFC00)==0x7E30D800) {
4555 decode_fields32(ENC_FADDP_ASISDPAIR_ONLY_SD, ctx, instr);
4556 ctx->d = UINT(ctx->Rd);
4557 ctx->n = UINT(ctx->Rn);
4558 ctx->esize = (0x20) << (UINT(ctx->sz));
4559 ctx->datasize = (ctx->esize) * (2);
4560 ctx->elements = 2;
4561 ctx->op = ReduceOp_FADD;
4562 OK(ENC_FADDP_ASISDPAIR_ONLY_SD);
4563 }
4564 return rc;
4565}
4566
4567/* faddp_advsimd_vec.xml */
4568int FADDP_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