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

Function AUTIA

arch/arm64/disassembler/decode2.c:854–889  ·  view source on GitHub ↗

autia.xml */

Source from the content-addressed store, hash-verified

852
853/* autia.xml */
854int AUTIA(context *ctx, Instruction *instr)
855{
856 int rc = DECODE_STATUS_UNMATCHED;
857 /* class iclass_general */
858 /* sf=1|1|S=0|11010110|opcode2=00001|opcode[5]=0|opcode[4]=0|Z=x|opcode[2:0]=100|Rn=xxxxx|Rd=xxxxx */
859 if((INSWORD & 0xFFFFDC00)==0xDAC11000) {
860 decode_fields32(ENC_AUTIA_64P_DP_1SRC, ctx, instr);
861 ctx->source_is_sp = FALSE;
862 ctx->d = UINT(ctx->Rd);
863 ctx->n = UINT(ctx->Rn);
864 if(!HavePACExt()) {
865 UNDEFINED;
866 }
867 if(ctx->Z==0) {
868 if(ctx->n==0x1f) {
869 ctx->source_is_sp = TRUE;
870 }
871 }
872 else {
873 if(ctx->n!=0x1f) {
874 UNDEFINED;
875 }
876 }
877 if(ctx->Z==0) OK(ENC_AUTIA_64P_DP_1SRC);
878 if(ctx->Z==1 && ctx->Rn==0x1f) OK(ENC_AUTIZA_64Z_DP_1SRC);
879 }
880 /* class iclass_system */
881 /* 1101010100|L=0|op0=00|op1=011|CRn=0010|CRm=00x1|op2=10x|Rt=11111 */
882 if((INSWORD & 0xFFFFFDDF)==0xD503219F) {
883 decode_fields32(ENC_AUTIA1716_HI_HINTS, ctx, instr);
884 if(ctx->CRm==1 && ctx->op2==4) OK(ENC_AUTIA1716_HI_HINTS);
885 if(ctx->CRm==3 && ctx->op2==5) OK(ENC_AUTIASP_HI_HINTS);
886 if(ctx->CRm==3 && ctx->op2==4) OK(ENC_AUTIAZ_HI_HINTS);
887 }
888 return rc;
889}
890
891/* autib.xml */
892int AUTIB(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