Revision 417454b0 target-sparc/translate.c
b/target-sparc/translate.c | ||
---|---|---|
943 | 943 |
gen_op_fcmpd_fcc2, |
944 | 944 |
gen_op_fcmpd_fcc3, |
945 | 945 |
}; |
946 |
|
|
947 |
static GenOpFunc * const gen_fcmpes[4] = { |
|
948 |
gen_op_fcmpes, |
|
949 |
gen_op_fcmpes_fcc1, |
|
950 |
gen_op_fcmpes_fcc2, |
|
951 |
gen_op_fcmpes_fcc3, |
|
952 |
}; |
|
953 |
|
|
954 |
static GenOpFunc * const gen_fcmped[4] = { |
|
955 |
gen_op_fcmped, |
|
956 |
gen_op_fcmped_fcc1, |
|
957 |
gen_op_fcmped_fcc2, |
|
958 |
gen_op_fcmped_fcc3, |
|
959 |
}; |
|
960 |
|
|
946 | 961 |
#endif |
947 | 962 |
|
948 | 963 |
static int gen_trap_ifnofpu(DisasContext * dc) |
... | ... | |
1289 | 1304 |
} else if (xop == 0x34) { /* FPU Operations */ |
1290 | 1305 |
if (gen_trap_ifnofpu(dc)) |
1291 | 1306 |
goto jmp_insn; |
1307 |
gen_op_clear_ieee_excp_and_FTT(); |
|
1292 | 1308 |
rs1 = GET_FIELD(insn, 13, 17); |
1293 | 1309 |
rs2 = GET_FIELD(insn, 27, 31); |
1294 | 1310 |
xop = GET_FIELD(insn, 18, 26); |
... | ... | |
1476 | 1492 |
#endif |
1477 | 1493 |
if (gen_trap_ifnofpu(dc)) |
1478 | 1494 |
goto jmp_insn; |
1495 |
gen_op_clear_ieee_excp_and_FTT(); |
|
1479 | 1496 |
rs1 = GET_FIELD(insn, 13, 17); |
1480 | 1497 |
rs2 = GET_FIELD(insn, 27, 31); |
1481 | 1498 |
xop = GET_FIELD(insn, 18, 26); |
... | ... | |
1653 | 1670 |
gen_op_load_fpr_FT0(rs1); |
1654 | 1671 |
gen_op_load_fpr_FT1(rs2); |
1655 | 1672 |
#ifdef TARGET_SPARC64 |
1656 |
gen_fcmps[rd & 3](); |
|
1673 |
gen_fcmpes[rd & 3]();
|
|
1657 | 1674 |
#else |
1658 |
gen_op_fcmps(); /* XXX should trap if qNaN or sNaN */
|
|
1675 |
gen_op_fcmpes();
|
|
1659 | 1676 |
#endif |
1660 | 1677 |
break; |
1661 | 1678 |
case 0x56: /* fcmped, V9 %fcc */ |
1662 | 1679 |
gen_op_load_fpr_DT0(DFPREG(rs1)); |
1663 | 1680 |
gen_op_load_fpr_DT1(DFPREG(rs2)); |
1664 | 1681 |
#ifdef TARGET_SPARC64 |
1665 |
gen_fcmpd[rd & 3](); |
|
1682 |
gen_fcmped[rd & 3]();
|
|
1666 | 1683 |
#else |
1667 |
gen_op_fcmpd(); /* XXX should trap if qNaN or sNaN */
|
|
1684 |
gen_op_fcmped();
|
|
1668 | 1685 |
#endif |
1669 | 1686 |
break; |
1670 | 1687 |
case 0x57: /* fcmpeq */ |
Also available in: Unified diff