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

Function PACIA

arch/arm64/disassembler/decode2.c:18974–19049  ·  view source on GitHub ↗

pacia.xml */

Source from the content-addressed store, hash-verified

18972
18973/* pacia.xml */
18974int PACIA(context *ctx, Instruction *instr)
18975{
18976 int rc = DECODE_STATUS_UNMATCHED;
18977 /* class iclass_general */
18978 /* sf=1|1|S=0|11010110|opcode2=00001|opcode[5]=0|opcode[4]=0|Z=x|opcode[2:0]=000|Rn=xxxxx|Rd=xxxxx */
18979 if((INSWORD & 0xFFFFDC00)==0xDAC10000) {
18980 decode_fields32(ENC_PACIA_64P_DP_1SRC, ctx, instr);
18981 ctx->source_is_sp = FALSE;
18982 ctx->d = UINT(ctx->Rd);
18983 ctx->n = UINT(ctx->Rn);
18984 if(!HavePACExt()) {
18985 UNDEFINED;
18986 }
18987 if(ctx->Z==0) {
18988 if(ctx->n==0x1f) {
18989 ctx->source_is_sp = TRUE;
18990 }
18991 }
18992 else {
18993 if(ctx->n!=0x1f) {
18994 UNDEFINED;
18995 }
18996 }
18997 if(ctx->Z==0) OK(ENC_PACIA_64P_DP_1SRC);
18998 if(ctx->Z==1 && ctx->Rn==0x1f) OK(ENC_PACIZA_64Z_DP_1SRC);
18999 }
19000 /* class iclass_system */
19001 /* 1101010100|L=0|op0=00|op1=011|CRn=0010|CRm=00x1|op2=00x|Rt=11111 */
19002 if((INSWORD & 0xFFFFFDDF)==0xD503211F) {
19003 decode_fields32(ENC_PACIA1716_HI_HINTS, ctx, instr);
19004 ctx->source_is_sp = FALSE;
19005 if(((ctx->CRm<<3)|ctx->op2)==0x18) {
19006 ctx->d = 0x1e;
19007 ctx->n = 0x1f;
19008 }
19009 else if(((ctx->CRm<<3)|ctx->op2)==0x19) {
19010 ctx->d = 0x1e;
19011 ctx->source_is_sp = TRUE;
19012 if(HaveBTIExt()) {
19013 SetBTypeCompatible(BTypeCompatible_PACIXSP());
19014 }
19015 }
19016 else if(((ctx->CRm<<3)|ctx->op2)==8) {
19017 ctx->d = 0x11;
19018 ctx->n = 0x10;
19019 }
19020 else if(((ctx->CRm<<3)|ctx->op2)==10) {
19021 SEE /* PACIB */;
19022 }
19023 else if(((ctx->CRm<<3)|ctx->op2)==12) {
19024 SEE /* AUTIA */;
19025 }
19026 else if(((ctx->CRm<<3)|ctx->op2)==14) {
19027 SEE /* AUTIB */;
19028 }
19029 else if((((ctx->CRm<<3)|ctx->op2)&0x7e)==0x1a) {
19030 SEE /* PACIB */;
19031 }

Callers 2

decode_iclass_hintsFunction · 0.85
decode_iclass_dp_1srcFunction · 0.85

Calls 2

decode_fields32Function · 0.85
BTypeCompatible_PACIXSPFunction · 0.85

Tested by

no test coverage detected