Index: qemu/tcg/tcg-op.h =================================================================== --- qemu.orig/tcg/tcg-op.h 2008-02-23 06:48:38.000000000 +0000 +++ qemu/tcg/tcg-op.h 2008-02-23 08:13:15.000000000 +0000 @@ -192,6 +192,33 @@ 0, NULL, 2, args); } +static inline void tcg_gen_helper_0_4(void *func, TCGv arg1, TCGv arg2, + TCGv arg3, TCGv arg4) +{ + TCGv args[4]; + args[0] = arg1; + args[1] = arg2; + args[2] = arg3; + args[3] = arg4; + tcg_gen_call(&tcg_ctx, + tcg_const_ptr((tcg_target_long)func), TCG_HELPER_CALL_FLAGS, + 0, NULL, 4, args); +} + +static inline void tcg_gen_helper_1_0(void *func, TCGv ret) +{ + tcg_gen_call(&tcg_ctx, + tcg_const_ptr((tcg_target_long)func), TCG_HELPER_CALL_FLAGS, + 1, &ret, 0, NULL); +} + +static inline void tcg_gen_helper_1_1(void *func, TCGv ret, TCGv arg1) +{ + tcg_gen_call(&tcg_ctx, + tcg_const_ptr((tcg_target_long)func), TCG_HELPER_CALL_FLAGS, + 1, &ret, 1, &arg1); +} + static inline void tcg_gen_helper_1_2(void *func, TCGv ret, TCGv arg1, TCGv arg2) { @@ -203,6 +230,20 @@ 1, &ret, 2, args); } +static inline void tcg_gen_helper_1_4(void *func, TCGv ret, + TCGv arg1, TCGv arg2, TCGv arg3, + TCGv arg4) +{ + TCGv args[4]; + args[0] = arg1; + args[1] = arg2; + args[2] = arg3; + args[3] = arg4; + tcg_gen_call(&tcg_ctx, + tcg_const_ptr((tcg_target_long)func), TCG_HELPER_CALL_FLAGS, + 1, &ret, 4, args); +} + /* 32 bit ops */ static inline void tcg_gen_ld8u_i32(TCGv ret, TCGv arg2, tcg_target_long offset)