Revision 5105c556

b/tcg/tcg-op.h
589 589
    tcg_temp_free_i32(t0);
590 590
}
591 591

  
592
static inline void tcg_gen_setcond_i32(int cond, TCGv_i32 ret,
593
                                       TCGv_i32 arg1, TCGv_i32 arg2)
594
{
595
    tcg_gen_op4i_i32(INDEX_op_setcond_i32, ret, arg1, arg2, cond);
596
}
597

  
598
static inline void tcg_gen_setcondi_i32(int cond, TCGv_i32 ret, TCGv_i32 arg1,
599
                                        int32_t arg2)
600
{
601
    TCGv_i32 t0 = tcg_const_i32(arg2);
602
    tcg_gen_setcond_i32(cond, ret, arg1, t0);
603
    tcg_temp_free_i32(t0);
604
}
605

  
592 606
static inline void tcg_gen_mul_i32(TCGv_i32 ret, TCGv_i32 arg1, TCGv_i32 arg2)
593 607
{
594 608
    tcg_gen_op3_i32(INDEX_op_mul_i32, ret, arg1, arg2);
......
851 865
                      TCGV_HIGH(arg2), cond, label_index);
852 866
}
853 867

  
868
static inline void tcg_gen_setcond_i64(int cond, TCGv_i64 ret,
869
                                       TCGv_i64 arg1, TCGv_i64 arg2)
870
{
871
    tcg_gen_op6i_i32(INDEX_op_setcond2_i32, TCGV_LOW(ret),
872
                     TCGV_LOW(arg1), TCGV_HIGH(arg1),
873
                     TCGV_LOW(arg2), TCGV_HIGH(arg2), cond);
874
    tcg_gen_movi_i32(TCGV_HIGH(ret), 0);
875
}
876

  
854 877
static inline void tcg_gen_mul_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2)
855 878
{
856 879
    TCGv_i64 t0;
......
1081 1104
    tcg_gen_op4ii_i64(INDEX_op_brcond_i64, arg1, arg2, cond, label_index);
1082 1105
}
1083 1106

  
1107
static inline void tcg_gen_setcond_i64(int cond, TCGv_i64 ret,
1108
                                       TCGv_i64 arg1, TCGv_i64 arg2)
1109
{
1110
    tcg_gen_op4i_i64(INDEX_op_setcond_i64, ret, arg1, arg2, cond);
1111
}
1112

  
1084 1113
static inline void tcg_gen_mul_i64(TCGv_i64 ret, TCGv_i64 arg1, TCGv_i64 arg2)
1085 1114
{
1086 1115
    tcg_gen_op3_i64(INDEX_op_mul_i64, ret, arg1, arg2);
......
1184 1213
    tcg_temp_free_i64(t0);
1185 1214
}
1186 1215

  
1216
static inline void tcg_gen_setcondi_i64(int cond, TCGv_i64 ret, TCGv_i64 arg1,
1217
                                        int64_t arg2)
1218
{
1219
    TCGv_i64 t0 = tcg_const_i64(arg2);
1220
    tcg_gen_setcond_i64(cond, ret, arg1, t0);
1221
    tcg_temp_free_i64(t0);
1222
}
1223

  
1187 1224
static inline void tcg_gen_muli_i64(TCGv_i64 ret, TCGv_i64 arg1, int64_t arg2)
1188 1225
{
1189 1226
    TCGv_i64 t0 = tcg_const_i64(arg2);
......
1821 1858
    }
1822 1859
}
1823 1860

  
1824
static inline void tcg_gen_setcond_i32(int cond, TCGv_i32 ret,
1825
                                       TCGv_i32 arg1, TCGv_i32 arg2)
1826
{
1827
    tcg_gen_op4i_i32(INDEX_op_setcond_i32, ret, arg1, arg2, cond);
1828
}
1829

  
1830
static inline void tcg_gen_setcondi_i32(int cond, TCGv_i32 ret, TCGv_i32 arg1,
1831
                                        int32_t arg2)
1832
{
1833
    TCGv_i32 t0 = tcg_const_i32(arg2);
1834
    tcg_gen_setcond_i32(cond, ret, arg1, t0);
1835
    tcg_temp_free_i32(t0);
1836
}
1837

  
1838
static inline void tcg_gen_setcond_i64(int cond, TCGv_i64 ret,
1839
                                       TCGv_i64 arg1, TCGv_i64 arg2)
1840
{
1841
#if TCG_TARGET_REG_BITS == 64
1842
    tcg_gen_op4i_i64(INDEX_op_setcond_i64, ret, arg1, arg2, cond);
1843
#else
1844
    tcg_gen_op6i_i32(INDEX_op_setcond2_i32, TCGV_LOW(ret),
1845
                     TCGV_LOW(arg1), TCGV_HIGH(arg1),
1846
                     TCGV_LOW(arg2), TCGV_HIGH(arg2), cond);
1847
    tcg_gen_movi_i32(TCGV_HIGH(ret), 0);
1848
#endif
1849
}
1850

  
1851
static inline void tcg_gen_setcondi_i64(int cond, TCGv_i64 ret, TCGv_i64 arg1,
1852
                                        int64_t arg2)
1853
{
1854
    TCGv_i64 t0 = tcg_const_i64(arg2);
1855
    tcg_gen_setcond_i64(cond, ret, arg1, t0);
1856
    tcg_temp_free_i64(t0);
1857
}
1858

  
1859 1861
/***************************************/
1860 1862
/* QEMU specific operations. Their type depend on the QEMU CPU
1861 1863
   type. */

Also available in: Unified diff