sqneg_advsimd.xml */
| 22549 | |
| 22550 | /* sqneg_advsimd.xml */ |
| 22551 | int SQNEG_advsimd(context *ctx, Instruction *instr) |
| 22552 | { |
| 22553 | int rc = DECODE_STATUS_UNMATCHED; |
| 22554 | /* class iclass_sisd */ |
| 22555 | /* 01|U=1|11110|size=xx|10000|opcode=00111|10|Rn=xxxxx|Rd=xxxxx */ |
| 22556 | if((INSWORD & 0xFF3FFC00)==0x7E207800) { |
| 22557 | decode_fields32(ENC_SQNEG_ASISDMISC_R, ctx, instr); |
| 22558 | ctx->d = UINT(ctx->Rd); |
| 22559 | ctx->n = UINT(ctx->Rn); |
| 22560 | ctx->esize = (8) << (UINT(ctx->size)); |
| 22561 | ctx->datasize = ctx->esize; |
| 22562 | ctx->elements = 1; |
| 22563 | ctx->neg = (ctx->U==1); |
| 22564 | OK(ENC_SQNEG_ASISDMISC_R); |
| 22565 | } |
| 22566 | /* class iclass_simd */ |
| 22567 | /* 0|Q=x|U=1|01110|size=xx|10000|opcode=00111|10|Rn=xxxxx|Rd=xxxxx */ |
| 22568 | if((INSWORD & 0xBF3FFC00)==0x2E207800) { |
| 22569 | decode_fields32(ENC_SQNEG_ASIMDMISC_R, ctx, instr); |
| 22570 | ctx->d = UINT(ctx->Rd); |
| 22571 | ctx->n = UINT(ctx->Rn); |
| 22572 | if(((ctx->size<<1)|ctx->Q)==6) { |
| 22573 | UNDEFINED; |
| 22574 | } |
| 22575 | ctx->esize = (8) << (UINT(ctx->size)); |
| 22576 | ctx->datasize = (ctx->Q==1) ? 0x80 : 0x40; |
| 22577 | ctx->elements = ((ctx->esize) ? ((ctx->datasize) / (ctx->esize)) : 0); |
| 22578 | ctx->neg = (ctx->U==1); |
| 22579 | OK(ENC_SQNEG_ASIMDMISC_R); |
| 22580 | } |
| 22581 | return rc; |
| 22582 | } |
| 22583 | |
| 22584 | /* sqrdmlah_advsimd_elt.xml */ |
| 22585 | int SQRDMLAH_advsimd_elt(context *ctx, Instruction *instr) |
no test coverage detected