Revision f0da3757 tcg/hppa/tcg-target.c
b/tcg/hppa/tcg-target.c | ||
---|---|---|
912 | 912 |
tcg_out_mov(s, TCG_TYPE_I32, ret, scratch); |
913 | 913 |
} |
914 | 914 |
|
915 |
static void tcg_out_movcond(TCGContext *s, int cond, TCGArg ret, |
|
916 |
TCGArg c1, TCGArg c2, int c2const, |
|
917 |
TCGArg v1, int v1const) |
|
918 |
{ |
|
919 |
tcg_out_comclr(s, tcg_invert_cond(cond), TCG_REG_R0, c1, c2, c2const); |
|
920 |
if (v1const) { |
|
921 |
tcg_out_movi(s, TCG_TYPE_I32, ret, v1); |
|
922 |
} else { |
|
923 |
tcg_out_mov(s, TCG_TYPE_I32, ret, v1); |
|
924 |
} |
|
925 |
} |
|
926 |
|
|
915 | 927 |
#if defined(CONFIG_SOFTMMU) |
916 | 928 |
#include "../../softmmu_defs.h" |
917 | 929 |
|
... | ... | |
1520 | 1532 |
args[3], const_args[3], args[4], const_args[4]); |
1521 | 1533 |
break; |
1522 | 1534 |
|
1535 |
case INDEX_op_movcond_i32: |
|
1536 |
tcg_out_movcond(s, args[5], args[0], args[1], args[2], const_args[2], |
|
1537 |
args[3], const_args[3]); |
|
1538 |
break; |
|
1539 |
|
|
1523 | 1540 |
case INDEX_op_add2_i32: |
1524 | 1541 |
tcg_out_add2(s, args[0], args[1], args[2], args[3], |
1525 | 1542 |
args[4], args[5], const_args[4]); |
... | ... | |
1628 | 1645 |
{ INDEX_op_setcond_i32, { "r", "rZ", "rI" } }, |
1629 | 1646 |
{ INDEX_op_setcond2_i32, { "r", "rZ", "rZ", "rI", "rI" } }, |
1630 | 1647 |
|
1648 |
/* ??? We can actually support a signed 14-bit arg3, but we |
|
1649 |
only have existing constraints for a signed 11-bit. */ |
|
1650 |
{ INDEX_op_movcond_i32, { "r", "rZ", "rI", "rI", "0" } }, |
|
1651 |
|
|
1631 | 1652 |
{ INDEX_op_add2_i32, { "r", "r", "rZ", "rZ", "rI", "rZ" } }, |
1632 | 1653 |
{ INDEX_op_sub2_i32, { "r", "r", "rI", "rZ", "rK", "rZ" } }, |
1633 | 1654 |
|
Also available in: Unified diff