ereta.xml */
| 3855 | |
| 3856 | /* ereta.xml */ |
| 3857 | int ERETA(context *ctx, Instruction *instr) |
| 3858 | { |
| 3859 | int rc = DECODE_STATUS_UNMATCHED; |
| 3860 | /* class iclass_general */ |
| 3861 | /* 1101011|opc[3]=0|opc[2:0]=100|op2=11111|op3[5:2]=0000|A=1|M=x|Rn=11111|op4=11111 */ |
| 3862 | if((INSWORD & 0xFFFFFBFF)==0xD69F0BFF) { |
| 3863 | decode_fields32(ENC_ERETAA_64E_BRANCH_REG, ctx, instr); |
| 3864 | /* if(ctx->pstate_el==EL0) { UNDEFINED; } */ |
| 3865 | ctx->pac = (ctx->A==1); |
| 3866 | ctx->use_key_a = (ctx->M==0); |
| 3867 | if(!ctx->pac && ctx->op4!=0) { |
| 3868 | UNDEFINED; |
| 3869 | } |
| 3870 | else if(ctx->pac && (!HavePACExt() || ctx->op4!=0x1f)) { |
| 3871 | UNDEFINED; |
| 3872 | } |
| 3873 | if(ctx->Rn!=0x1f) { |
| 3874 | UNDEFINED; |
| 3875 | } |
| 3876 | if(ctx->M==0) OK(ENC_ERETAA_64E_BRANCH_REG); |
| 3877 | if(ctx->M==1) OK(ENC_ERETAB_64E_BRANCH_REG); |
| 3878 | } |
| 3879 | return rc; |
| 3880 | } |
| 3881 | |
| 3882 | /* esb.xml */ |
| 3883 | int ESB(context *ctx, Instruction *instr) |
no test coverage detected