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

Function SQNEG_advsimd

arch/arm64/disassembler/decode2.c:22551–22582  ·  view source on GitHub ↗

sqneg_advsimd.xml */

Source from the content-addressed store, hash-verified

22549
22550/* sqneg_advsimd.xml */
22551int SQNEG_advsimd(context *ctx, Instruction *instr)
22552{
22553 int rc = DECODE_STATUS_UNMATCHED;
22554 /* class iclass_sisd */
22555 /* 01|U=1|11110|size=xx|10000|opcode=00111|10|Rn=xxxxx|Rd=xxxxx */
22556 if((INSWORD & 0xFF3FFC00)==0x7E207800) {
22557 decode_fields32(ENC_SQNEG_ASISDMISC_R, ctx, instr);
22558 ctx->d = UINT(ctx->Rd);
22559 ctx->n = UINT(ctx->Rn);
22560 ctx->esize = (8) << (UINT(ctx->size));
22561 ctx->datasize = ctx->esize;
22562 ctx->elements = 1;
22563 ctx->neg = (ctx->U==1);
22564 OK(ENC_SQNEG_ASISDMISC_R);
22565 }
22566 /* class iclass_simd */
22567 /* 0|Q=x|U=1|01110|size=xx|10000|opcode=00111|10|Rn=xxxxx|Rd=xxxxx */
22568 if((INSWORD & 0xBF3FFC00)==0x2E207800) {
22569 decode_fields32(ENC_SQNEG_ASIMDMISC_R, ctx, instr);
22570 ctx->d = UINT(ctx->Rd);
22571 ctx->n = UINT(ctx->Rn);
22572 if(((ctx->size<<1)|ctx->Q)==6) {
22573 UNDEFINED;
22574 }
22575 ctx->esize = (8) << (UINT(ctx->size));
22576 ctx->datasize = (ctx->Q==1) ? 0x80 : 0x40;
22577 ctx->elements = ((ctx->esize) ? ((ctx->datasize) / (ctx->esize)) : 0);
22578 ctx->neg = (ctx->U==1);
22579 OK(ENC_SQNEG_ASIMDMISC_R);
22580 }
22581 return rc;
22582}
22583
22584/* sqrdmlah_advsimd_elt.xml */
22585int SQRDMLAH_advsimd_elt(context *ctx, Instruction *instr)

Callers 2

decode_iclass_asisdmiscFunction · 0.85
decode_iclass_asimdmiscFunction · 0.85

Calls 1

decode_fields32Function · 0.85

Tested by

no test coverage detected