csneg.xml */
| 3218 | |
| 3219 | /* csneg.xml */ |
| 3220 | int CSNEG(context *ctx, Instruction *instr) |
| 3221 | { |
| 3222 | int rc = DECODE_STATUS_UNMATCHED; |
| 3223 | /* class iclass_general */ |
| 3224 | /* sf=x|op=1|S=0|11010100|Rm=xxxxx|cond=xxxx|op2[1]=0|o2=1|Rn=xxxxx|Rd=xxxxx */ |
| 3225 | if((INSWORD & 0x7FE00C00)==0x5A800400) { |
| 3226 | decode_fields32(ENC_CSNEG_32_CONDSEL, ctx, instr); |
| 3227 | ctx->d = UINT(ctx->Rd); |
| 3228 | ctx->n = UINT(ctx->Rn); |
| 3229 | ctx->m = UINT(ctx->Rm); |
| 3230 | ctx->datasize = (ctx->sf==1) ? 0x40 : 0x20; |
| 3231 | ctx->condition = ctx->cond; |
| 3232 | ctx->else_inv = (ctx->op==1); |
| 3233 | ctx->else_inc = (ctx->o2==1); |
| 3234 | /* regular aliases */ |
| 3235 | if((ctx->cond&14)!=14 && ctx->Rn==ctx->Rm) return CNEG_CSNEG(ctx, instr); |
| 3236 | if(ctx->sf==0) OK(ENC_CSNEG_32_CONDSEL); |
| 3237 | if(ctx->sf==1) OK(ENC_CSNEG_64_CONDSEL); |
| 3238 | } |
| 3239 | return rc; |
| 3240 | } |
| 3241 | |
| 3242 | /* dcps1.xml */ |
| 3243 | int DCPS1(context *ctx, Instruction *instr) |
no test coverage detected