aboutsummaryrefslogtreecommitdiff
path: root/tcg-runtime.c
diff options
context:
space:
mode:
authorAurelien Jarno <aurelien@aurel32.net>2010-03-02 23:16:36 +0100
committerAurelien Jarno <aurelien@aurel32.net>2010-03-14 22:04:50 +0100
commit31d6655100cd54a8c081e04349661c0f08117e66 (patch)
treee78fc8236bb36ab7b8ecd305f67780c1e97b76a5 /tcg-runtime.c
parent7296abaccc98872e28cec50091dbf26d38e4f062 (diff)
downloadqemu-31d6655100cd54a8c081e04349661c0f08117e66.zip
qemu-31d6655100cd54a8c081e04349661c0f08117e66.tar.gz
qemu-31d6655100cd54a8c081e04349661c0f08117e66.tar.bz2
tcg: add div/rem 32-bit helpers
Some targets like ARM would benefit to use 32-bit helpers for div/rem/divu/remu. Create a #define for div2 so that targets can select between div, div2 and helper implementation. Use the helper version if none of the #define are present. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'tcg-runtime.c')
-rw-r--r--tcg-runtime.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/tcg-runtime.c b/tcg-runtime.c
index 219cade..abfc364 100644
--- a/tcg-runtime.c
+++ b/tcg-runtime.c
@@ -25,6 +25,30 @@
#include "tcg/tcg-runtime.h"
+/* 32-bit helpers */
+
+int32_t tcg_helper_div_i32(int32_t arg1, int32_t arg2)
+{
+ return arg1 / arg2;
+}
+
+int32_t tcg_helper_rem_i32(int32_t arg1, int32_t arg2)
+{
+ return arg1 % arg2;
+}
+
+uint32_t tcg_helper_divu_i32(uint32_t arg1, uint32_t arg2)
+{
+ return arg1 / arg2;
+}
+
+uint32_t tcg_helper_remu_i32(uint32_t arg1, uint32_t arg2)
+{
+ return arg1 % arg2;
+}
+
+/* 64-bit helpers */
+
int64_t tcg_helper_shl_i64(int64_t arg1, int64_t arg2)
{
return arg1 << arg2;