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

Function ABS_advsimd

arch/arm64/disassembler/decode2.c:12–46  ·  view source on GitHub ↗

abs_advsimd.xml */

Source from the content-addressed store, hash-verified

10
11/* abs_advsimd.xml */
12int ABS_advsimd(context *ctx, Instruction *instr)
13{
14 int rc = DECODE_STATUS_UNMATCHED;
15 /* class iclass_sisd */
16 /* 01|U=0|11110|size=xx|10000|opcode=01011|10|Rn=xxxxx|Rd=xxxxx */
17 if((INSWORD & 0xFF3FFC00)==0x5E20B800) {
18 decode_fields32(ENC_ABS_ASISDMISC_R, ctx, instr);
19 ctx->d = UINT(ctx->Rd);
20 ctx->n = UINT(ctx->Rn);
21 if(ctx->size!=3) {
22 UNDEFINED;
23 }
24 ctx->esize = (8) << (UINT(ctx->size));
25 ctx->datasize = ctx->esize;
26 ctx->elements = 1;
27 ctx->neg = (ctx->U==1);
28 OK(ENC_ABS_ASISDMISC_R);
29 }
30 /* class iclass_simd */
31 /* 0|Q=x|U=0|01110|size=xx|10000|opcode=01011|10|Rn=xxxxx|Rd=xxxxx */
32 if((INSWORD & 0xBF3FFC00)==0xE20B800) {
33 decode_fields32(ENC_ABS_ASIMDMISC_R, ctx, instr);
34 ctx->d = UINT(ctx->Rd);
35 ctx->n = UINT(ctx->Rn);
36 if(((ctx->size<<1)|ctx->Q)==6) {
37 UNDEFINED;
38 }
39 ctx->esize = (8) << (UINT(ctx->size));
40 ctx->datasize = (ctx->Q==1) ? 0x80 : 0x40;
41 ctx->elements = ((ctx->esize) ? ((ctx->datasize) / (ctx->esize)) : 0);
42 ctx->neg = (ctx->U==1);
43 OK(ENC_ABS_ASIMDMISC_R);
44 }
45 return rc;
46}
47
48/* adc.xml */
49int ADC(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