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

Function SUQADD_advsimd

arch/arm64/disassembler/decode2.c:27313–27344  ·  view source on GitHub ↗

suqadd_advsimd.xml */

Source from the content-addressed store, hash-verified

27311
27312/* suqadd_advsimd.xml */
27313int SUQADD_advsimd(context *ctx, Instruction *instr)
27314{
27315 int rc = DECODE_STATUS_UNMATCHED;
27316 /* class iclass_sisd */
27317 /* 01|U=0|11110|size=xx|10000|opcode=00011|10|Rn=xxxxx|Rd=xxxxx */
27318 if((INSWORD & 0xFF3FFC00)==0x5E203800) {
27319 decode_fields32(ENC_SUQADD_ASISDMISC_R, ctx, instr);
27320 ctx->d = UINT(ctx->Rd);
27321 ctx->n = UINT(ctx->Rn);
27322 ctx->esize = (8) << (UINT(ctx->size));
27323 ctx->datasize = ctx->esize;
27324 ctx->elements = 1;
27325 ctx->unsigned_ = (ctx->U==1);
27326 OK(ENC_SUQADD_ASISDMISC_R);
27327 }
27328 /* class iclass_simd */
27329 /* 0|Q=x|U=0|01110|size=xx|10000|opcode=00011|10|Rn=xxxxx|Rd=xxxxx */
27330 if((INSWORD & 0xBF3FFC00)==0xE203800) {
27331 decode_fields32(ENC_SUQADD_ASIMDMISC_R, ctx, instr);
27332 ctx->d = UINT(ctx->Rd);
27333 ctx->n = UINT(ctx->Rn);
27334 if(((ctx->size<<1)|ctx->Q)==6) {
27335 UNDEFINED;
27336 }
27337 ctx->esize = (8) << (UINT(ctx->size));
27338 ctx->datasize = (ctx->Q==1) ? 0x80 : 0x40;
27339 ctx->elements = ((ctx->esize) ? ((ctx->datasize) / (ctx->esize)) : 0);
27340 ctx->unsigned_ = (ctx->U==1);
27341 OK(ENC_SUQADD_ASIMDMISC_R);
27342 }
27343 return rc;
27344}
27345
27346/* svc.xml */
27347int SVC(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