faddp_advsimd_pair.xml */
| 4529 | |
| 4530 | /* faddp_advsimd_pair.xml */ |
| 4531 | int FADDP_advsimd_pair(context *ctx, Instruction *instr) |
| 4532 | { |
| 4533 | int rc = DECODE_STATUS_UNMATCHED; |
| 4534 | /* class iclass_half */ |
| 4535 | /* 01|U=0|11110|size[1]=0|sz=x|11000|opcode=01101|10|Rn=xxxxx|Rd=xxxxx */ |
| 4536 | if((INSWORD & 0xFFBFFC00)==0x5E30D800) { |
| 4537 | decode_fields32(ENC_FADDP_ASISDPAIR_ONLY_H, ctx, instr); |
| 4538 | if(!HaveFP16Ext()) { |
| 4539 | UNDEFINED; |
| 4540 | } |
| 4541 | ctx->d = UINT(ctx->Rd); |
| 4542 | ctx->n = UINT(ctx->Rn); |
| 4543 | ctx->esize = 0x10; |
| 4544 | if(ctx->sz==1) { |
| 4545 | UNDEFINED; |
| 4546 | } |
| 4547 | ctx->datasize = (ctx->esize) * (2); |
| 4548 | ctx->elements = 2; |
| 4549 | ctx->op = ReduceOp_FADD; |
| 4550 | OK(ENC_FADDP_ASISDPAIR_ONLY_H); |
| 4551 | } |
| 4552 | /* class iclass_single_and_double */ |
| 4553 | /* 01|U=1|11110|size[1]=0|sz=x|11000|opcode=01101|10|Rn=xxxxx|Rd=xxxxx */ |
| 4554 | if((INSWORD & 0xFFBFFC00)==0x7E30D800) { |
| 4555 | decode_fields32(ENC_FADDP_ASISDPAIR_ONLY_SD, ctx, instr); |
| 4556 | ctx->d = UINT(ctx->Rd); |
| 4557 | ctx->n = UINT(ctx->Rn); |
| 4558 | ctx->esize = (0x20) << (UINT(ctx->sz)); |
| 4559 | ctx->datasize = (ctx->esize) * (2); |
| 4560 | ctx->elements = 2; |
| 4561 | ctx->op = ReduceOp_FADD; |
| 4562 | OK(ENC_FADDP_ASISDPAIR_ONLY_SD); |
| 4563 | } |
| 4564 | return rc; |
| 4565 | } |
| 4566 | |
| 4567 | /* faddp_advsimd_vec.xml */ |
| 4568 | int FADDP_advsimd_vec(context *ctx, Instruction *instr) |
no test coverage detected