sqxtun_advsimd.xml */
| 23396 | |
| 23397 | /* sqxtun_advsimd.xml */ |
| 23398 | int SQXTUN_advsimd(context *ctx, Instruction *instr) |
| 23399 | { |
| 23400 | int rc = DECODE_STATUS_UNMATCHED; |
| 23401 | /* class iclass_sisd */ |
| 23402 | /* 01|U=1|11110|size=xx|10000|opcode=10010|10|Rn=xxxxx|Rd=xxxxx */ |
| 23403 | if((INSWORD & 0xFF3FFC00)==0x7E212800) { |
| 23404 | decode_fields32(ENC_SQXTUN_ASISDMISC_N, ctx, instr); |
| 23405 | ctx->d = UINT(ctx->Rd); |
| 23406 | ctx->n = UINT(ctx->Rn); |
| 23407 | if(ctx->size==3) { |
| 23408 | UNDEFINED; |
| 23409 | } |
| 23410 | ctx->esize = (8) << (UINT(ctx->size)); |
| 23411 | ctx->datasize = ctx->esize; |
| 23412 | ctx->part = 0; |
| 23413 | ctx->elements = 1; |
| 23414 | OK(ENC_SQXTUN_ASISDMISC_N); |
| 23415 | } |
| 23416 | /* class iclass_simd */ |
| 23417 | /* 0|Q=x|U=1|01110|size=xx|10000|opcode=10010|10|Rn=xxxxx|Rd=xxxxx */ |
| 23418 | if((INSWORD & 0xBF3FFC00)==0x2E212800) { |
| 23419 | decode_fields32(ENC_SQXTUN_ASIMDMISC_N, ctx, instr); |
| 23420 | ctx->d = UINT(ctx->Rd); |
| 23421 | ctx->n = UINT(ctx->Rn); |
| 23422 | if(ctx->size==3) { |
| 23423 | UNDEFINED; |
| 23424 | } |
| 23425 | ctx->esize = (8) << (UINT(ctx->size)); |
| 23426 | ctx->datasize = 0x40; |
| 23427 | ctx->part = UINT(ctx->Q); |
| 23428 | ctx->elements = ((ctx->esize) ? ((ctx->datasize) / (ctx->esize)) : 0); |
| 23429 | OK(ENC_SQXTUN_ASIMDMISC_N); |
| 23430 | } |
| 23431 | return rc; |
| 23432 | } |
| 23433 | |
| 23434 | /* srhadd_advsimd.xml */ |
| 23435 | int SRHADD_advsimd(context *ctx, Instruction *instr) |
no test coverage detected