fminp_advsimd_pair.xml */
| 8635 | |
| 8636 | /* fminp_advsimd_pair.xml */ |
| 8637 | int FMINP_advsimd_pair(context *ctx, Instruction *instr) |
| 8638 | { |
| 8639 | int rc = DECODE_STATUS_UNMATCHED; |
| 8640 | /* class iclass_half */ |
| 8641 | /* 01|U=0|11110|o1=1|sz=x|11000|opcode=01111|10|Rn=xxxxx|Rd=xxxxx */ |
| 8642 | if((INSWORD & 0xFFBFFC00)==0x5EB0F800) { |
| 8643 | decode_fields32(ENC_FMINP_ASISDPAIR_ONLY_H, ctx, instr); |
| 8644 | if(!HaveFP16Ext()) { |
| 8645 | UNDEFINED; |
| 8646 | } |
| 8647 | ctx->d = UINT(ctx->Rd); |
| 8648 | ctx->n = UINT(ctx->Rn); |
| 8649 | ctx->esize = 0x10; |
| 8650 | if(ctx->sz==1) { |
| 8651 | UNDEFINED; |
| 8652 | } |
| 8653 | ctx->datasize = (ctx->esize) * (2); |
| 8654 | ctx->elements = 2; |
| 8655 | ctx->op = (ctx->o1==1) ? ReduceOp_FMIN : ReduceOp_FMAX; |
| 8656 | OK(ENC_FMINP_ASISDPAIR_ONLY_H); |
| 8657 | } |
| 8658 | /* class iclass_single_and_double */ |
| 8659 | /* 01|U=1|11110|o1=1|sz=x|11000|opcode=01111|10|Rn=xxxxx|Rd=xxxxx */ |
| 8660 | if((INSWORD & 0xFFBFFC00)==0x7EB0F800) { |
| 8661 | decode_fields32(ENC_FMINP_ASISDPAIR_ONLY_SD, ctx, instr); |
| 8662 | ctx->d = UINT(ctx->Rd); |
| 8663 | ctx->n = UINT(ctx->Rn); |
| 8664 | ctx->esize = (0x20) << (UINT(ctx->sz)); |
| 8665 | ctx->datasize = (ctx->esize) * (2); |
| 8666 | ctx->elements = 2; |
| 8667 | ctx->op = (ctx->o1==1) ? ReduceOp_FMIN : ReduceOp_FMAX; |
| 8668 | OK(ENC_FMINP_ASISDPAIR_ONLY_SD); |
| 8669 | } |
| 8670 | return rc; |
| 8671 | } |
| 8672 | |
| 8673 | /* fminp_advsimd_vec.xml */ |
| 8674 | int FMINP_advsimd_vec(context *ctx, Instruction *instr) |
no test coverage detected