suqadd_advsimd.xml */
| 27311 | |
| 27312 | /* suqadd_advsimd.xml */ |
| 27313 | int SUQADD_advsimd(context *ctx, Instruction *instr) |
| 27314 | { |
| 27315 | int rc = DECODE_STATUS_UNMATCHED; |
| 27316 | /* class iclass_sisd */ |
| 27317 | /* 01|U=0|11110|size=xx|10000|opcode=00011|10|Rn=xxxxx|Rd=xxxxx */ |
| 27318 | if((INSWORD & 0xFF3FFC00)==0x5E203800) { |
| 27319 | decode_fields32(ENC_SUQADD_ASISDMISC_R, ctx, instr); |
| 27320 | ctx->d = UINT(ctx->Rd); |
| 27321 | ctx->n = UINT(ctx->Rn); |
| 27322 | ctx->esize = (8) << (UINT(ctx->size)); |
| 27323 | ctx->datasize = ctx->esize; |
| 27324 | ctx->elements = 1; |
| 27325 | ctx->unsigned_ = (ctx->U==1); |
| 27326 | OK(ENC_SUQADD_ASISDMISC_R); |
| 27327 | } |
| 27328 | /* class iclass_simd */ |
| 27329 | /* 0|Q=x|U=0|01110|size=xx|10000|opcode=00011|10|Rn=xxxxx|Rd=xxxxx */ |
| 27330 | if((INSWORD & 0xBF3FFC00)==0xE203800) { |
| 27331 | decode_fields32(ENC_SUQADD_ASIMDMISC_R, ctx, instr); |
| 27332 | ctx->d = UINT(ctx->Rd); |
| 27333 | ctx->n = UINT(ctx->Rn); |
| 27334 | if(((ctx->size<<1)|ctx->Q)==6) { |
| 27335 | UNDEFINED; |
| 27336 | } |
| 27337 | ctx->esize = (8) << (UINT(ctx->size)); |
| 27338 | ctx->datasize = (ctx->Q==1) ? 0x80 : 0x40; |
| 27339 | ctx->elements = ((ctx->esize) ? ((ctx->datasize) / (ctx->esize)) : 0); |
| 27340 | ctx->unsigned_ = (ctx->U==1); |
| 27341 | OK(ENC_SUQADD_ASIMDMISC_R); |
| 27342 | } |
| 27343 | return rc; |
| 27344 | } |
| 27345 | |
| 27346 | /* svc.xml */ |
| 27347 | int SVC(context *ctx, Instruction *instr) |
no test coverage detected