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

Function AUTIB

arch/arm64/disassembler/decode2.c:892–927  ·  view source on GitHub ↗

autib.xml */

Source from the content-addressed store, hash-verified

890
891/* autib.xml */
892int AUTIB(context *ctx, Instruction *instr)
893{
894 int rc = DECODE_STATUS_UNMATCHED;
895 /* class iclass_general */
896 /* sf=1|1|S=0|11010110|opcode2=00001|opcode[5]=0|opcode[4]=0|Z=x|opcode[2:0]=101|Rn=xxxxx|Rd=xxxxx */
897 if((INSWORD & 0xFFFFDC00)==0xDAC11400) {
898 decode_fields32(ENC_AUTIB_64P_DP_1SRC, ctx, instr);
899 ctx->source_is_sp = FALSE;
900 ctx->d = UINT(ctx->Rd);
901 ctx->n = UINT(ctx->Rn);
902 if(!HavePACExt()) {
903 UNDEFINED;
904 }
905 if(ctx->Z==0) {
906 if(ctx->n==0x1f) {
907 ctx->source_is_sp = TRUE;
908 }
909 }
910 else {
911 if(ctx->n!=0x1f) {
912 UNDEFINED;
913 }
914 }
915 if(ctx->Z==0) OK(ENC_AUTIB_64P_DP_1SRC);
916 if(ctx->Z==1 && ctx->Rn==0x1f) OK(ENC_AUTIZB_64Z_DP_1SRC);
917 }
918 /* class iclass_system */
919 /* 1101010100|L=0|op0=00|op1=011|CRn=0010|CRm=00x1|op2=11x|Rt=11111 */
920 if((INSWORD & 0xFFFFFDDF)==0xD50321DF) {
921 decode_fields32(ENC_AUTIB1716_HI_HINTS, ctx, instr);
922 if(ctx->CRm==1 && ctx->op2==6) OK(ENC_AUTIB1716_HI_HINTS);
923 if(ctx->CRm==3 && ctx->op2==7) OK(ENC_AUTIBSP_HI_HINTS);
924 if(ctx->CRm==3 && ctx->op2==6) OK(ENC_AUTIBZ_HI_HINTS);
925 }
926 return rc;
927}
928
929/* axflag.xml */
930int AXFLAG(context *ctx, Instruction *instr)

Callers 2

decode_iclass_hintsFunction · 0.85
decode_iclass_dp_1srcFunction · 0.85

Calls 1

decode_fields32Function · 0.85

Tested by

no test coverage detected