csinv.xml */
| 3194 | |
| 3195 | /* csinv.xml */ |
| 3196 | int CSINV(context *ctx, Instruction *instr) |
| 3197 | { |
| 3198 | int rc = DECODE_STATUS_UNMATCHED; |
| 3199 | /* class iclass_general */ |
| 3200 | /* sf=x|op=1|S=0|11010100|Rm=xxxxx|cond=xxxx|op2[1]=0|o2=0|Rn=xxxxx|Rd=xxxxx */ |
| 3201 | if((INSWORD & 0x7FE00C00)==0x5A800000) { |
| 3202 | decode_fields32(ENC_CSINV_32_CONDSEL, ctx, instr); |
| 3203 | ctx->d = UINT(ctx->Rd); |
| 3204 | ctx->n = UINT(ctx->Rn); |
| 3205 | ctx->m = UINT(ctx->Rm); |
| 3206 | ctx->datasize = (ctx->sf==1) ? 0x40 : 0x20; |
| 3207 | ctx->condition = ctx->cond; |
| 3208 | ctx->else_inv = (ctx->op==1); |
| 3209 | ctx->else_inc = (ctx->o2==1); |
| 3210 | /* regular aliases */ |
| 3211 | if(ctx->Rm!=0x1f && (ctx->cond&14)!=14 && ctx->Rn!=0x1f && ctx->Rn==ctx->Rm) return CINV_CSINV(ctx, instr); |
| 3212 | if(ctx->Rm==0x1f && (ctx->cond&14)!=14 && ctx->Rn==0x1f) return CSETM_CSINV(ctx, instr); |
| 3213 | if(ctx->sf==0) OK(ENC_CSINV_32_CONDSEL); |
| 3214 | if(ctx->sf==1) OK(ENC_CSINV_64_CONDSEL); |
| 3215 | } |
| 3216 | return rc; |
| 3217 | } |
| 3218 | |
| 3219 | /* csneg.xml */ |
| 3220 | int CSNEG(context *ctx, Instruction *instr) |
no test coverage detected