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

Function SQXTUN_advsimd

arch/arm64/disassembler/decode2.c:23398–23432  ·  view source on GitHub ↗

sqxtun_advsimd.xml */

Source from the content-addressed store, hash-verified

23396
23397/* sqxtun_advsimd.xml */
23398int SQXTUN_advsimd(context *ctx, Instruction *instr)
23399{
23400 int rc = DECODE_STATUS_UNMATCHED;
23401 /* class iclass_sisd */
23402 /* 01|U=1|11110|size=xx|10000|opcode=10010|10|Rn=xxxxx|Rd=xxxxx */
23403 if((INSWORD & 0xFF3FFC00)==0x7E212800) {
23404 decode_fields32(ENC_SQXTUN_ASISDMISC_N, ctx, instr);
23405 ctx->d = UINT(ctx->Rd);
23406 ctx->n = UINT(ctx->Rn);
23407 if(ctx->size==3) {
23408 UNDEFINED;
23409 }
23410 ctx->esize = (8) << (UINT(ctx->size));
23411 ctx->datasize = ctx->esize;
23412 ctx->part = 0;
23413 ctx->elements = 1;
23414 OK(ENC_SQXTUN_ASISDMISC_N);
23415 }
23416 /* class iclass_simd */
23417 /* 0|Q=x|U=1|01110|size=xx|10000|opcode=10010|10|Rn=xxxxx|Rd=xxxxx */
23418 if((INSWORD & 0xBF3FFC00)==0x2E212800) {
23419 decode_fields32(ENC_SQXTUN_ASIMDMISC_N, ctx, instr);
23420 ctx->d = UINT(ctx->Rd);
23421 ctx->n = UINT(ctx->Rn);
23422 if(ctx->size==3) {
23423 UNDEFINED;
23424 }
23425 ctx->esize = (8) << (UINT(ctx->size));
23426 ctx->datasize = 0x40;
23427 ctx->part = UINT(ctx->Q);
23428 ctx->elements = ((ctx->esize) ? ((ctx->datasize) / (ctx->esize)) : 0);
23429 OK(ENC_SQXTUN_ASIMDMISC_N);
23430 }
23431 return rc;
23432}
23433
23434/* srhadd_advsimd.xml */
23435int SRHADD_advsimd(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