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

Function SRSHR_advsimd

arch/arm64/disassembler/decode2.c:23541–23584  ·  view source on GitHub ↗

srshr_advsimd.xml */

Source from the content-addressed store, hash-verified

23539
23540/* srshr_advsimd.xml */
23541int SRSHR_advsimd(context *ctx, Instruction *instr)
23542{
23543 int rc = DECODE_STATUS_UNMATCHED;
23544 /* class iclass_sisd */
23545 /* 01|U=0|111110|immh!=0000|immb=xxx|opcode[4:3]=00|o1=1|o0=0|opcode[0]=0|1|Rn=xxxxx|Rd=xxxxx */
23546 if((INSWORD & 0xFF80FC00)==0x5F002400 && (INSWORD & 0x780000)!=0x0) {
23547 decode_fields32(ENC_SRSHR_ASISDSHF_R, ctx, instr);
23548 ctx->d = UINT(ctx->Rd);
23549 ctx->n = UINT(ctx->Rn);
23550 if(SLICE(ctx->immh,3,3)!=1) {
23551 UNDEFINED;
23552 }
23553 ctx->esize = (8) << (3);
23554 ctx->datasize = ctx->esize;
23555 ctx->elements = 1;
23556 ctx->shift = ((ctx->esize) * (2))-UINT(((ctx->immh<<3)|ctx->immb));
23557 ctx->unsigned_ = (ctx->U==1);
23558 ctx->round = (ctx->o1==1);
23559 ctx->accumulate = (ctx->o0==1);
23560 OK(ENC_SRSHR_ASISDSHF_R);
23561 }
23562 /* class iclass_simd */
23563 /* 0|Q=x|U=0|011110|immh!=0000|immb=xxx|opcode[4:3]=00|o1=1|o0=0|opcode[0]=0|1|Rn=xxxxx|Rd=xxxxx */
23564 if((INSWORD & 0xBF80FC00)==0xF002400 && (INSWORD & 0x780000)!=0x0) {
23565 decode_fields32(ENC_SRSHR_ASIMDSHF_R, ctx, instr);
23566 ctx->d = UINT(ctx->Rd);
23567 ctx->n = UINT(ctx->Rn);
23568 if(ctx->immh==0) {
23569 SEE /* asimdimm */;
23570 }
23571 if(((SLICE(ctx->immh,3,3)<<1)|ctx->Q)==2) {
23572 UNDEFINED;
23573 }
23574 ctx->esize = (8) << (HighestSetBit(ctx->immh));
23575 ctx->datasize = (ctx->Q==1) ? 0x80 : 0x40;
23576 ctx->elements = ((ctx->esize) ? ((ctx->datasize) / (ctx->esize)) : 0);
23577 ctx->shift = ((ctx->esize) * (2))-UINT(((ctx->immh<<3)|ctx->immb));
23578 ctx->unsigned_ = (ctx->U==1);
23579 ctx->round = (ctx->o1==1);
23580 ctx->accumulate = (ctx->o0==1);
23581 OK(ENC_SRSHR_ASIMDSHF_R);
23582 }
23583 return rc;
23584}
23585
23586/* srsra_advsimd.xml */
23587int SRSRA_advsimd(context *ctx, Instruction *instr)

Callers 2

decode_iclass_asisdshfFunction · 0.85
decode_iclass_asimdshfFunction · 0.85

Calls 2

decode_fields32Function · 0.85
HighestSetBitFunction · 0.85

Tested by

no test coverage detected