Commit f730fd27b8e358efb3f7b31a564ecc6b1543b689
1 parent
653ccb80
Add helpers and shorthands for mul and muli operations.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4319 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
19 additions
and
0 deletions
tcg/tcg-op.h
| @@ -438,6 +438,11 @@ static inline void tcg_gen_mul_i32(TCGv ret, TCGv arg1, TCGv arg2) | @@ -438,6 +438,11 @@ static inline void tcg_gen_mul_i32(TCGv ret, TCGv arg1, TCGv arg2) | ||
| 438 | tcg_gen_op3(INDEX_op_mul_i32, ret, arg1, arg2); | 438 | tcg_gen_op3(INDEX_op_mul_i32, ret, arg1, arg2); |
| 439 | } | 439 | } |
| 440 | 440 | ||
| 441 | +static inline void tcg_gen_muli_i32(TCGv ret, TCGv arg1, int32_t arg2) | ||
| 442 | +{ | ||
| 443 | + tcg_gen_mul_i32(ret, arg1, tcg_const_i32(arg2)); | ||
| 444 | +} | ||
| 445 | + | ||
| 441 | #ifdef TCG_TARGET_HAS_div_i32 | 446 | #ifdef TCG_TARGET_HAS_div_i32 |
| 442 | static inline void tcg_gen_div_i32(TCGv ret, TCGv arg1, TCGv arg2) | 447 | static inline void tcg_gen_div_i32(TCGv ret, TCGv arg1, TCGv arg2) |
| 443 | { | 448 | { |
| @@ -698,6 +703,11 @@ static inline void tcg_gen_mul_i64(TCGv ret, TCGv arg1, TCGv arg2) | @@ -698,6 +703,11 @@ static inline void tcg_gen_mul_i64(TCGv ret, TCGv arg1, TCGv arg2) | ||
| 698 | tcg_gen_mov_i64(ret, t0); | 703 | tcg_gen_mov_i64(ret, t0); |
| 699 | } | 704 | } |
| 700 | 705 | ||
| 706 | +static inline void tcg_gen_muli_i64(TCGv ret, TCGv arg1, int64_t arg2) | ||
| 707 | +{ | ||
| 708 | + tcg_gen_mul_i64(ret, arg1, tcg_const_i64(arg2)); | ||
| 709 | +} | ||
| 710 | + | ||
| 701 | static inline void tcg_gen_div_i64(TCGv ret, TCGv arg1, TCGv arg2) | 711 | static inline void tcg_gen_div_i64(TCGv ret, TCGv arg1, TCGv arg2) |
| 702 | { | 712 | { |
| 703 | tcg_gen_helper_1_2(tcg_helper_div_i64, ret, arg1, arg2); | 713 | tcg_gen_helper_1_2(tcg_helper_div_i64, ret, arg1, arg2); |
| @@ -886,6 +896,11 @@ static inline void tcg_gen_mul_i64(TCGv ret, TCGv arg1, TCGv arg2) | @@ -886,6 +896,11 @@ static inline void tcg_gen_mul_i64(TCGv ret, TCGv arg1, TCGv arg2) | ||
| 886 | tcg_gen_op3(INDEX_op_mul_i64, ret, arg1, arg2); | 896 | tcg_gen_op3(INDEX_op_mul_i64, ret, arg1, arg2); |
| 887 | } | 897 | } |
| 888 | 898 | ||
| 899 | +static inline void tcg_gen_muli_i64(TCGv ret, TCGv arg1, int64_t arg2) | ||
| 900 | +{ | ||
| 901 | + tcg_gen_mul_i64(ret, arg1, tcg_const_i64(arg2)); | ||
| 902 | +} | ||
| 903 | + | ||
| 889 | #ifdef TCG_TARGET_HAS_div_i64 | 904 | #ifdef TCG_TARGET_HAS_div_i64 |
| 890 | static inline void tcg_gen_div_i64(TCGv ret, TCGv arg1, TCGv arg2) | 905 | static inline void tcg_gen_div_i64(TCGv ret, TCGv arg1, TCGv arg2) |
| 891 | { | 906 | { |
| @@ -1395,6 +1410,8 @@ static inline void tcg_gen_qemu_st64(TCGv arg, TCGv addr, int mem_index) | @@ -1395,6 +1410,8 @@ static inline void tcg_gen_qemu_st64(TCGv arg, TCGv addr, int mem_index) | ||
| 1395 | #define tcg_gen_sar_tl tcg_gen_sar_i64 | 1410 | #define tcg_gen_sar_tl tcg_gen_sar_i64 |
| 1396 | #define tcg_gen_sari_tl tcg_gen_sari_i64 | 1411 | #define tcg_gen_sari_tl tcg_gen_sari_i64 |
| 1397 | #define tcg_gen_brcond_tl tcg_gen_brcond_i64 | 1412 | #define tcg_gen_brcond_tl tcg_gen_brcond_i64 |
| 1413 | +#define tcg_gen_mul_tl tcg_gen_mul_i64 | ||
| 1414 | +#define tcg_gen_muli_tl tcg_gen_muli_i64 | ||
| 1398 | #define tcg_gen_discard_tl tcg_gen_discard_i64 | 1415 | #define tcg_gen_discard_tl tcg_gen_discard_i64 |
| 1399 | #define tcg_gen_trunc_tl_i32 tcg_gen_trunc_i64_i32 | 1416 | #define tcg_gen_trunc_tl_i32 tcg_gen_trunc_i64_i32 |
| 1400 | #define tcg_gen_trunc_i64_tl tcg_gen_mov_i64 | 1417 | #define tcg_gen_trunc_i64_tl tcg_gen_mov_i64 |
| @@ -1435,6 +1452,8 @@ static inline void tcg_gen_qemu_st64(TCGv arg, TCGv addr, int mem_index) | @@ -1435,6 +1452,8 @@ static inline void tcg_gen_qemu_st64(TCGv arg, TCGv addr, int mem_index) | ||
| 1435 | #define tcg_gen_sar_tl tcg_gen_sar_i32 | 1452 | #define tcg_gen_sar_tl tcg_gen_sar_i32 |
| 1436 | #define tcg_gen_sari_tl tcg_gen_sari_i32 | 1453 | #define tcg_gen_sari_tl tcg_gen_sari_i32 |
| 1437 | #define tcg_gen_brcond_tl tcg_gen_brcond_i32 | 1454 | #define tcg_gen_brcond_tl tcg_gen_brcond_i32 |
| 1455 | +#define tcg_gen_mul_tl tcg_gen_mul_i32 | ||
| 1456 | +#define tcg_gen_muli_tl tcg_gen_muli_i32 | ||
| 1438 | #define tcg_gen_discard_tl tcg_gen_discard_i32 | 1457 | #define tcg_gen_discard_tl tcg_gen_discard_i32 |
| 1439 | #define tcg_gen_trunc_tl_i32 tcg_gen_mov_i32 | 1458 | #define tcg_gen_trunc_tl_i32 tcg_gen_mov_i32 |
| 1440 | #define tcg_gen_trunc_i64_tl tcg_gen_trunc_i64_i32 | 1459 | #define tcg_gen_trunc_i64_tl tcg_gen_trunc_i64_i32 |