autib.xml */
| 890 | |
| 891 | /* autib.xml */ |
| 892 | int 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 */ |
| 930 | int AXFLAG(context *ctx, Instruction *instr) |
no test coverage detected