autia.xml */
| 852 | |
| 853 | /* autia.xml */ |
| 854 | int 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 */ |
| 892 | int AUTIB(context *ctx, Instruction *instr) |
no test coverage detected