| 2660 | } |
| 2661 | |
| 2662 | int decode_iclass_floatcmp(context *ctx, Instruction *dec) |
| 2663 | { |
| 2664 | uint32_t M=INSWORD>>31, S=(INSWORD>>29)&1, ptype=(INSWORD>>22)&3, op=(INSWORD>>14)&3, opcode2=INSWORD&0x1f; |
| 2665 | if(!M && !S && !ptype && !op && !opcode2) return FCMP_float(ctx, dec); // -> FCMP_S_floatcmp |
| 2666 | if(!M && !S && !ptype && !op && opcode2==8) return FCMP_float(ctx, dec); // -> FCMP_SZ_floatcmp |
| 2667 | if(!M && !S && !ptype && !op && opcode2==0x10) return FCMPE_float(ctx, dec); // -> FCMPE_S_floatcmp |
| 2668 | if(!M && !S && !ptype && !op && opcode2==0x18) return FCMPE_float(ctx, dec); // -> FCMPE_SZ_floatcmp |
| 2669 | if(!M && !S && ptype==1 && !op && !opcode2) return FCMP_float(ctx, dec); // -> FCMP_D_floatcmp |
| 2670 | if(!M && !S && ptype==1 && !op && opcode2==8) return FCMP_float(ctx, dec); // -> FCMP_DZ_floatcmp |
| 2671 | if(!M && !S && ptype==1 && !op && opcode2==0x10) return FCMPE_float(ctx, dec); // -> FCMPE_D_floatcmp |
| 2672 | if(!M && !S && ptype==1 && !op && opcode2==0x18) return FCMPE_float(ctx, dec); // -> FCMPE_DZ_floatcmp |
| 2673 | if(!M && !S && ptype==3 && !op && !opcode2 && HasFP16()) return FCMP_float(ctx, dec); // -> FCMP_H_floatcmp |
| 2674 | if(!M && !S && ptype==3 && !op && opcode2==8 && HasFP16()) return FCMP_float(ctx, dec); // -> FCMP_HZ_floatcmp |
| 2675 | if(!M && !S && ptype==3 && !op && opcode2==0x10 && HasFP16()) return FCMPE_float(ctx, dec); // -> FCMPE_H_floatcmp |
| 2676 | if(!M && !S && ptype==3 && !op && opcode2==0x18 && HasFP16()) return FCMPE_float(ctx, dec); // -> FCMPE_HZ_floatcmp |
| 2677 | if(ptype==2) UNALLOCATED(ENC_UNALLOCATED_17_FLOATCMP); |
| 2678 | if(opcode2&1) UNALLOCATED(ENC_UNALLOCATED_12_FLOATCMP); |
| 2679 | if((opcode2&2)==2) UNALLOCATED(ENC_UNALLOCATED_13_FLOATCMP); |
| 2680 | if((opcode2&4)==4) UNALLOCATED(ENC_UNALLOCATED_14_FLOATCMP); |
| 2681 | if(op&1) UNALLOCATED(ENC_UNALLOCATED_15_FLOATCMP); |
| 2682 | if((op&2)==2) UNALLOCATED(ENC_UNALLOCATED_16_FLOATCMP); |
| 2683 | if(S) UNALLOCATED(ENC_UNALLOCATED_10_FLOATCMP); |
| 2684 | if(M) UNALLOCATED(ENC_UNALLOCATED_11_FLOATCMP); |
| 2685 | UNMATCHED; |
| 2686 | } |
| 2687 | |
| 2688 | int decode_iclass_floatccmp(context *ctx, Instruction *dec) |
| 2689 | { |
no test coverage detected