Merge remote-tracking branch 'remotes/rth/tcg-next' into staging

* remotes/rth/tcg-next:
  tcg/optimize: Remember garbage high bits for 32-bit ops
  tcg/optimize: Move updating of gen_opc_buf into tcg_opt_gen_mov*
  tcg-sparc: Make debug_frame const
  tcg-s390: Make debug_frame const
  tcg-arm: Make debug_frame const
  tcg-aarch64: Make debug_frame const
  tcg-i386: Make debug_frame const
  tcg: Allow the debug_frame data structure to be constant
  tcg: Move size effects out of dh_arg
  tcg: Remove sizemask and flags arguments to tcg_gen_callN
  tcg: Save flags and computed sizemask in TCGHelperInfo
  tcg: Register the helper info struct rather than the name
  tcg: Move side effects out of dh_sizemask
  tcg: Inline tcg_gen_helperN
  tcg: Use helper-gen.h in tcg-op.h
  tcg: Push tcg-runtime routines into exec/helper-*
  tcg: Invert the inclusion of helper.h
  tcg: Optimize brcond2 and setcond2 ne/eq

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Peter Maydell 2014-05-28 17:44:45 +01:00
commit 66226ffd05
111 changed files with 715 additions and 817 deletions

View File

@ -1,274 +0,0 @@
/* Helper file for declaring TCG helper functions.
Should be included at the start and end of target-foo/helper.h.
Targets should use DEF_HELPER_N and DEF_HELPER_FLAGS_N to declare helper
functions. Names should be specified without the helper_ prefix, and
the return and argument types specified. 3 basic types are understood
(i32, i64 and ptr). Additional aliases are provided for convenience and
to match the types used by the C helper implementation.
The target helper.h should be included in all files that use/define
helper functions. THis will ensure that function prototypes are
consistent. In addition it should be included an extra two times for
helper.c, defining:
GEN_HELPER 1 to produce op generation functions (gen_helper_*)
GEN_HELPER 2 to do runtime registration helper functions.
*/
#ifndef DEF_HELPER_H
#define DEF_HELPER_H 1
#define HELPER(name) glue(helper_, name)
#define GET_TCGV_i32 GET_TCGV_I32
#define GET_TCGV_i64 GET_TCGV_I64
#define GET_TCGV_ptr GET_TCGV_PTR
/* Some types that make sense in C, but not for TCG. */
#define dh_alias_i32 i32
#define dh_alias_s32 i32
#define dh_alias_int i32
#define dh_alias_i64 i64
#define dh_alias_s64 i64
#define dh_alias_f32 i32
#define dh_alias_f64 i64
#if TARGET_LONG_BITS == 32
#define dh_alias_tl i32
#else
#define dh_alias_tl i64
#endif
#define dh_alias_ptr ptr
#define dh_alias_void void
#define dh_alias_noreturn noreturn
#define dh_alias_env ptr
#define dh_alias(t) glue(dh_alias_, t)
#define dh_ctype_i32 uint32_t
#define dh_ctype_s32 int32_t
#define dh_ctype_int int
#define dh_ctype_i64 uint64_t
#define dh_ctype_s64 int64_t
#define dh_ctype_f32 float32
#define dh_ctype_f64 float64
#define dh_ctype_tl target_ulong
#define dh_ctype_ptr void *
#define dh_ctype_void void
#define dh_ctype_noreturn void QEMU_NORETURN
#define dh_ctype_env CPUArchState *
#define dh_ctype(t) dh_ctype_##t
/* We can't use glue() here because it falls foul of C preprocessor
recursive expansion rules. */
#define dh_retvar_decl0_void void
#define dh_retvar_decl0_noreturn void
#define dh_retvar_decl0_i32 TCGv_i32 retval
#define dh_retvar_decl0_i64 TCGv_i64 retval
#define dh_retvar_decl0_ptr TCGv_ptr retval
#define dh_retvar_decl0(t) glue(dh_retvar_decl0_, dh_alias(t))
#define dh_retvar_decl_void
#define dh_retvar_decl_noreturn
#define dh_retvar_decl_i32 TCGv_i32 retval,
#define dh_retvar_decl_i64 TCGv_i64 retval,
#define dh_retvar_decl_ptr TCGv_ptr retval,
#define dh_retvar_decl(t) glue(dh_retvar_decl_, dh_alias(t))
#define dh_retvar_void TCG_CALL_DUMMY_ARG
#define dh_retvar_noreturn TCG_CALL_DUMMY_ARG
#define dh_retvar_i32 GET_TCGV_i32(retval)
#define dh_retvar_i64 GET_TCGV_i64(retval)
#define dh_retvar_ptr GET_TCGV_ptr(retval)
#define dh_retvar(t) glue(dh_retvar_, dh_alias(t))
#define dh_is_64bit_void 0
#define dh_is_64bit_noreturn 0
#define dh_is_64bit_i32 0
#define dh_is_64bit_i64 1
#define dh_is_64bit_ptr (sizeof(void *) == 8)
#define dh_is_64bit(t) glue(dh_is_64bit_, dh_alias(t))
#define dh_is_signed_void 0
#define dh_is_signed_noreturn 0
#define dh_is_signed_i32 0
#define dh_is_signed_s32 1
#define dh_is_signed_i64 0
#define dh_is_signed_s64 1
#define dh_is_signed_f32 0
#define dh_is_signed_f64 0
#define dh_is_signed_tl 0
#define dh_is_signed_int 1
/* ??? This is highly specific to the host cpu. There are even special
extension instructions that may be required, e.g. ia64's addp4. But
for now we don't support any 64-bit targets with 32-bit pointers. */
#define dh_is_signed_ptr 0
#define dh_is_signed_env dh_is_signed_ptr
#define dh_is_signed(t) dh_is_signed_##t
#define dh_sizemask(t, n) \
sizemask |= dh_is_64bit(t) << (n*2); \
sizemask |= dh_is_signed(t) << (n*2+1)
#define dh_arg(t, n) \
args[n - 1] = glue(GET_TCGV_, dh_alias(t))(glue(arg, n)); \
dh_sizemask(t, n)
#define dh_arg_decl(t, n) glue(TCGv_, dh_alias(t)) glue(arg, n)
#define DEF_HELPER_0(name, ret) \
DEF_HELPER_FLAGS_0(name, 0, ret)
#define DEF_HELPER_1(name, ret, t1) \
DEF_HELPER_FLAGS_1(name, 0, ret, t1)
#define DEF_HELPER_2(name, ret, t1, t2) \
DEF_HELPER_FLAGS_2(name, 0, ret, t1, t2)
#define DEF_HELPER_3(name, ret, t1, t2, t3) \
DEF_HELPER_FLAGS_3(name, 0, ret, t1, t2, t3)
#define DEF_HELPER_4(name, ret, t1, t2, t3, t4) \
DEF_HELPER_FLAGS_4(name, 0, ret, t1, t2, t3, t4)
#define DEF_HELPER_5(name, ret, t1, t2, t3, t4, t5) \
DEF_HELPER_FLAGS_5(name, 0, ret, t1, t2, t3, t4, t5)
/* MAX_OPC_PARAM_IARGS must be set to n if last entry is DEF_HELPER_FLAGS_n. */
#endif /* DEF_HELPER_H */
#ifndef GEN_HELPER
/* Function prototypes. */
#define DEF_HELPER_FLAGS_0(name, flags, ret) \
dh_ctype(ret) HELPER(name) (void);
#define DEF_HELPER_FLAGS_1(name, flags, ret, t1) \
dh_ctype(ret) HELPER(name) (dh_ctype(t1));
#define DEF_HELPER_FLAGS_2(name, flags, ret, t1, t2) \
dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2));
#define DEF_HELPER_FLAGS_3(name, flags, ret, t1, t2, t3) \
dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2), dh_ctype(t3));
#define DEF_HELPER_FLAGS_4(name, flags, ret, t1, t2, t3, t4) \
dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2), dh_ctype(t3), \
dh_ctype(t4));
#define DEF_HELPER_FLAGS_5(name, flags, ret, t1, t2, t3, t4, t5) \
dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2), dh_ctype(t3), \
dh_ctype(t4), dh_ctype(t5));
#undef GEN_HELPER
#define GEN_HELPER -1
#elif GEN_HELPER == 1
/* Gen functions. */
#define DEF_HELPER_FLAGS_0(name, flags, ret) \
static inline void glue(gen_helper_, name)(dh_retvar_decl0(ret)) \
{ \
int sizemask; \
sizemask = dh_is_64bit(ret); \
tcg_gen_helperN(HELPER(name), flags, sizemask, dh_retvar(ret), 0, NULL); \
}
#define DEF_HELPER_FLAGS_1(name, flags, ret, t1) \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) dh_arg_decl(t1, 1)) \
{ \
TCGArg args[1]; \
int sizemask = 0; \
dh_sizemask(ret, 0); \
dh_arg(t1, 1); \
tcg_gen_helperN(HELPER(name), flags, sizemask, dh_retvar(ret), 1, args); \
}
#define DEF_HELPER_FLAGS_2(name, flags, ret, t1, t2) \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) dh_arg_decl(t1, 1), \
dh_arg_decl(t2, 2)) \
{ \
TCGArg args[2]; \
int sizemask = 0; \
dh_sizemask(ret, 0); \
dh_arg(t1, 1); \
dh_arg(t2, 2); \
tcg_gen_helperN(HELPER(name), flags, sizemask, dh_retvar(ret), 2, args); \
}
#define DEF_HELPER_FLAGS_3(name, flags, ret, t1, t2, t3) \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) dh_arg_decl(t1, 1), \
dh_arg_decl(t2, 2), dh_arg_decl(t3, 3)) \
{ \
TCGArg args[3]; \
int sizemask = 0; \
dh_sizemask(ret, 0); \
dh_arg(t1, 1); \
dh_arg(t2, 2); \
dh_arg(t3, 3); \
tcg_gen_helperN(HELPER(name), flags, sizemask, dh_retvar(ret), 3, args); \
}
#define DEF_HELPER_FLAGS_4(name, flags, ret, t1, t2, t3, t4) \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) dh_arg_decl(t1, 1), \
dh_arg_decl(t2, 2), dh_arg_decl(t3, 3), dh_arg_decl(t4, 4)) \
{ \
TCGArg args[4]; \
int sizemask = 0; \
dh_sizemask(ret, 0); \
dh_arg(t1, 1); \
dh_arg(t2, 2); \
dh_arg(t3, 3); \
dh_arg(t4, 4); \
tcg_gen_helperN(HELPER(name), flags, sizemask, dh_retvar(ret), 4, args); \
}
#define DEF_HELPER_FLAGS_5(name, flags, ret, t1, t2, t3, t4, t5) \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3), \
dh_arg_decl(t4, 4), dh_arg_decl(t5, 5)) \
{ \
TCGArg args[5]; \
int sizemask = 0; \
dh_sizemask(ret, 0); \
dh_arg(t1, 1); \
dh_arg(t2, 2); \
dh_arg(t3, 3); \
dh_arg(t4, 4); \
dh_arg(t5, 5); \
tcg_gen_helperN(HELPER(name), flags, sizemask, dh_retvar(ret), 5, args); \
}
#undef GEN_HELPER
#define GEN_HELPER -1
#elif GEN_HELPER == 2
/* Register helpers. */
#define DEF_HELPER_FLAGS_0(name, flags, ret) { HELPER(name), #name },
#define DEF_HELPER_FLAGS_1(name, flags, ret, t1) \
DEF_HELPER_FLAGS_0(name, flags, ret)
#define DEF_HELPER_FLAGS_2(name, flags, ret, t1, t2) \
DEF_HELPER_FLAGS_0(name, flags, ret)
#define DEF_HELPER_FLAGS_3(name, flags, ret, t1, t2, t3) \
DEF_HELPER_FLAGS_0(name, flags, ret)
#define DEF_HELPER_FLAGS_4(name, flags, ret, t1, t2, t3, t4) \
DEF_HELPER_FLAGS_0(name, flags, ret)
#define DEF_HELPER_FLAGS_5(name, flags, ret, t1, t2, t3, t4, t5) \
DEF_HELPER_FLAGS_0(name, flags, ret)
#undef GEN_HELPER
#define GEN_HELPER -1
#elif GEN_HELPER == -1
/* Undefine macros. */
#undef DEF_HELPER_FLAGS_0
#undef DEF_HELPER_FLAGS_1
#undef DEF_HELPER_FLAGS_2
#undef DEF_HELPER_FLAGS_3
#undef DEF_HELPER_FLAGS_4
#undef DEF_HELPER_FLAGS_5
#undef GEN_HELPER
#endif

70
include/exec/helper-gen.h Normal file
View File

@ -0,0 +1,70 @@
/* Helper file for declaring TCG helper functions.
This one expands generation functions for tcg opcodes. */
#ifndef HELPER_GEN_H
#define HELPER_GEN_H 1
#include <exec/helper-head.h>
#define DEF_HELPER_FLAGS_0(name, flags, ret) \
static inline void glue(gen_helper_, name)(dh_retvar_decl0(ret)) \
{ \
tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 0, NULL); \
}
#define DEF_HELPER_FLAGS_1(name, flags, ret, t1) \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
dh_arg_decl(t1, 1)) \
{ \
TCGArg args[1] = { dh_arg(t1, 1) }; \
tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 1, args); \
}
#define DEF_HELPER_FLAGS_2(name, flags, ret, t1, t2) \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2)) \
{ \
TCGArg args[2] = { dh_arg(t1, 1), dh_arg(t2, 2) }; \
tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 2, args); \
}
#define DEF_HELPER_FLAGS_3(name, flags, ret, t1, t2, t3) \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3)) \
{ \
TCGArg args[3] = { dh_arg(t1, 1), dh_arg(t2, 2), dh_arg(t3, 3) }; \
tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 3, args); \
}
#define DEF_HELPER_FLAGS_4(name, flags, ret, t1, t2, t3, t4) \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), \
dh_arg_decl(t3, 3), dh_arg_decl(t4, 4)) \
{ \
TCGArg args[4] = { dh_arg(t1, 1), dh_arg(t2, 2), \
dh_arg(t3, 3), dh_arg(t4, 4) }; \
tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 4, args); \
}
#define DEF_HELPER_FLAGS_5(name, flags, ret, t1, t2, t3, t4, t5) \
static inline void glue(gen_helper_, name)(dh_retvar_decl(ret) \
dh_arg_decl(t1, 1), dh_arg_decl(t2, 2), dh_arg_decl(t3, 3), \
dh_arg_decl(t4, 4), dh_arg_decl(t5, 5)) \
{ \
TCGArg args[5] = { dh_arg(t1, 1), dh_arg(t2, 2), dh_arg(t3, 3), \
dh_arg(t4, 4), dh_arg(t5, 5) }; \
tcg_gen_callN(&tcg_ctx, HELPER(name), dh_retvar(ret), 5, args); \
}
#include "helper.h"
#include "tcg-runtime.h"
#undef DEF_HELPER_FLAGS_0
#undef DEF_HELPER_FLAGS_1
#undef DEF_HELPER_FLAGS_2
#undef DEF_HELPER_FLAGS_3
#undef DEF_HELPER_FLAGS_4
#undef DEF_HELPER_FLAGS_5
#undef GEN_HELPER
#endif /* HELPER_GEN_H */

134
include/exec/helper-head.h Normal file
View File

@ -0,0 +1,134 @@
/* Helper file for declaring TCG helper functions.
Used by other helper files.
Targets should use DEF_HELPER_N and DEF_HELPER_FLAGS_N to declare helper
functions. Names should be specified without the helper_ prefix, and
the return and argument types specified. 3 basic types are understood
(i32, i64 and ptr). Additional aliases are provided for convenience and
to match the types used by the C helper implementation.
The target helper.h should be included in all files that use/define
helper functions. THis will ensure that function prototypes are
consistent. In addition it should be included an extra two times for
helper.c, defining:
GEN_HELPER 1 to produce op generation functions (gen_helper_*)
GEN_HELPER 2 to do runtime registration helper functions.
*/
#ifndef DEF_HELPER_H
#define DEF_HELPER_H 1
#include "qemu/osdep.h"
#define HELPER(name) glue(helper_, name)
#define GET_TCGV_i32 GET_TCGV_I32
#define GET_TCGV_i64 GET_TCGV_I64
#define GET_TCGV_ptr GET_TCGV_PTR
/* Some types that make sense in C, but not for TCG. */
#define dh_alias_i32 i32
#define dh_alias_s32 i32
#define dh_alias_int i32
#define dh_alias_i64 i64
#define dh_alias_s64 i64
#define dh_alias_f32 i32
#define dh_alias_f64 i64
#ifdef TARGET_LONG_BITS
# if TARGET_LONG_BITS == 32
# define dh_alias_tl i32
# else
# define dh_alias_tl i64
# endif
#endif
#define dh_alias_ptr ptr
#define dh_alias_void void
#define dh_alias_noreturn noreturn
#define dh_alias_env ptr
#define dh_alias(t) glue(dh_alias_, t)
#define dh_ctype_i32 uint32_t
#define dh_ctype_s32 int32_t
#define dh_ctype_int int
#define dh_ctype_i64 uint64_t
#define dh_ctype_s64 int64_t
#define dh_ctype_f32 float32
#define dh_ctype_f64 float64
#define dh_ctype_tl target_ulong
#define dh_ctype_ptr void *
#define dh_ctype_void void
#define dh_ctype_noreturn void QEMU_NORETURN
#define dh_ctype_env CPUArchState *
#define dh_ctype(t) dh_ctype_##t
/* We can't use glue() here because it falls foul of C preprocessor
recursive expansion rules. */
#define dh_retvar_decl0_void void
#define dh_retvar_decl0_noreturn void
#define dh_retvar_decl0_i32 TCGv_i32 retval
#define dh_retvar_decl0_i64 TCGv_i64 retval
#define dh_retvar_decl0_ptr TCGv_ptr retval
#define dh_retvar_decl0(t) glue(dh_retvar_decl0_, dh_alias(t))
#define dh_retvar_decl_void
#define dh_retvar_decl_noreturn
#define dh_retvar_decl_i32 TCGv_i32 retval,
#define dh_retvar_decl_i64 TCGv_i64 retval,
#define dh_retvar_decl_ptr TCGv_ptr retval,
#define dh_retvar_decl(t) glue(dh_retvar_decl_, dh_alias(t))
#define dh_retvar_void TCG_CALL_DUMMY_ARG
#define dh_retvar_noreturn TCG_CALL_DUMMY_ARG
#define dh_retvar_i32 GET_TCGV_i32(retval)
#define dh_retvar_i64 GET_TCGV_i64(retval)
#define dh_retvar_ptr GET_TCGV_ptr(retval)
#define dh_retvar(t) glue(dh_retvar_, dh_alias(t))
#define dh_is_64bit_void 0
#define dh_is_64bit_noreturn 0
#define dh_is_64bit_i32 0
#define dh_is_64bit_i64 1
#define dh_is_64bit_ptr (sizeof(void *) == 8)
#define dh_is_64bit(t) glue(dh_is_64bit_, dh_alias(t))
#define dh_is_signed_void 0
#define dh_is_signed_noreturn 0
#define dh_is_signed_i32 0
#define dh_is_signed_s32 1
#define dh_is_signed_i64 0
#define dh_is_signed_s64 1
#define dh_is_signed_f32 0
#define dh_is_signed_f64 0
#define dh_is_signed_tl 0
#define dh_is_signed_int 1
/* ??? This is highly specific to the host cpu. There are even special
extension instructions that may be required, e.g. ia64's addp4. But
for now we don't support any 64-bit targets with 32-bit pointers. */
#define dh_is_signed_ptr 0
#define dh_is_signed_env dh_is_signed_ptr
#define dh_is_signed(t) dh_is_signed_##t
#define dh_sizemask(t, n) \
((dh_is_64bit(t) << (n*2)) | (dh_is_signed(t) << (n*2+1)))
#define dh_arg(t, n) \
glue(GET_TCGV_, dh_alias(t))(glue(arg, n))
#define dh_arg_decl(t, n) glue(TCGv_, dh_alias(t)) glue(arg, n)
#define DEF_HELPER_0(name, ret) \
DEF_HELPER_FLAGS_0(name, 0, ret)
#define DEF_HELPER_1(name, ret, t1) \
DEF_HELPER_FLAGS_1(name, 0, ret, t1)
#define DEF_HELPER_2(name, ret, t1, t2) \
DEF_HELPER_FLAGS_2(name, 0, ret, t1, t2)
#define DEF_HELPER_3(name, ret, t1, t2, t3) \
DEF_HELPER_FLAGS_3(name, 0, ret, t1, t2, t3)
#define DEF_HELPER_4(name, ret, t1, t2, t3, t4) \
DEF_HELPER_FLAGS_4(name, 0, ret, t1, t2, t3, t4)
#define DEF_HELPER_5(name, ret, t1, t2, t3, t4, t5) \
DEF_HELPER_FLAGS_5(name, 0, ret, t1, t2, t3, t4, t5)
/* MAX_OPC_PARAM_IARGS must be set to n if last entry is DEF_HELPER_FLAGS_n. */
#endif /* DEF_HELPER_H */

View File

@ -0,0 +1,39 @@
/* Helper file for declaring TCG helper functions.
This one expands prototypes for the helper functions. */
#ifndef HELPER_PROTO_H
#define HELPER_PROTO_H 1
#include <exec/helper-head.h>
#define DEF_HELPER_FLAGS_0(name, flags, ret) \
dh_ctype(ret) HELPER(name) (void);
#define DEF_HELPER_FLAGS_1(name, flags, ret, t1) \
dh_ctype(ret) HELPER(name) (dh_ctype(t1));
#define DEF_HELPER_FLAGS_2(name, flags, ret, t1, t2) \
dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2));
#define DEF_HELPER_FLAGS_3(name, flags, ret, t1, t2, t3) \
dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2), dh_ctype(t3));
#define DEF_HELPER_FLAGS_4(name, flags, ret, t1, t2, t3, t4) \
dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2), dh_ctype(t3), \
dh_ctype(t4));
#define DEF_HELPER_FLAGS_5(name, flags, ret, t1, t2, t3, t4, t5) \
dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2), dh_ctype(t3), \
dh_ctype(t4), dh_ctype(t5));
#include "helper.h"
#include "tcg-runtime.h"
#undef DEF_HELPER_FLAGS_0
#undef DEF_HELPER_FLAGS_1
#undef DEF_HELPER_FLAGS_2
#undef DEF_HELPER_FLAGS_3
#undef DEF_HELPER_FLAGS_4
#undef DEF_HELPER_FLAGS_5
#endif /* HELPER_PROTO_H */

48
include/exec/helper-tcg.h Normal file
View File

@ -0,0 +1,48 @@
/* Helper file for declaring TCG helper functions.
This one defines data structures private to tcg.c. */
#ifndef HELPER_TCG_H
#define HELPER_TCG_H 1
#include <exec/helper-head.h>
#define DEF_HELPER_FLAGS_0(NAME, FLAGS, ret) \
{ .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \
.sizemask = dh_sizemask(ret, 0) },
#define DEF_HELPER_FLAGS_1(NAME, FLAGS, ret, t1) \
{ .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \
.sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) },
#define DEF_HELPER_FLAGS_2(NAME, FLAGS, ret, t1, t2) \
{ .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \
.sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \
| dh_sizemask(t2, 2) },
#define DEF_HELPER_FLAGS_3(NAME, FLAGS, ret, t1, t2, t3) \
{ .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \
.sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \
| dh_sizemask(t2, 2) | dh_sizemask(t3, 3) },
#define DEF_HELPER_FLAGS_4(NAME, FLAGS, ret, t1, t2, t3, t4) \
{ .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \
.sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \
| dh_sizemask(t2, 2) | dh_sizemask(t3, 3) | dh_sizemask(t4, 4) },
#define DEF_HELPER_FLAGS_5(NAME, FLAGS, ret, t1, t2, t3, t4, t5) \
{ .func = HELPER(NAME), .name = #NAME, .flags = FLAGS, \
.sizemask = dh_sizemask(ret, 0) | dh_sizemask(t1, 1) \
| dh_sizemask(t2, 2) | dh_sizemask(t3, 3) | dh_sizemask(t4, 4) \
| dh_sizemask(t5, 5) },
#include "helper.h"
#include "tcg-runtime.h"
#undef DEF_HELPER_FLAGS_0
#undef DEF_HELPER_FLAGS_1
#undef DEF_HELPER_FLAGS_2
#undef DEF_HELPER_FLAGS_3
#undef DEF_HELPER_FLAGS_4
#undef DEF_HELPER_FLAGS_5
#endif /* HELPER_TCG_H */

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "fpu/softfloat.h" #include "fpu/softfloat.h"
#define FP_STATUS (env->fp_status) #define FP_STATUS (env->fp_status)

View File

@ -23,7 +23,7 @@
#include "cpu.h" #include "cpu.h"
#include "fpu/softfloat.h" #include "fpu/softfloat.h"
#include "helper.h" #include "exec/helper-proto.h"
uint64_t cpu_alpha_load_fpcr (CPUAlphaState *env) uint64_t cpu_alpha_load_fpcr (CPUAlphaState *env)
{ {

View File

@ -1,5 +1,3 @@
#include "exec/def-helper.h"
DEF_HELPER_3(excp, noreturn, env, int, int) DEF_HELPER_3(excp, noreturn, env, int, int)
DEF_HELPER_FLAGS_1(load_pcc, TCG_CALL_NO_RWG_SE, i64, env) DEF_HELPER_FLAGS_1(load_pcc, TCG_CALL_NO_RWG_SE, i64, env)
@ -121,5 +119,3 @@ DEF_HELPER_FLAGS_0(get_vmtime, TCG_CALL_NO_RWG, i64)
DEF_HELPER_FLAGS_0(get_walltime, TCG_CALL_NO_RWG, i64) DEF_HELPER_FLAGS_0(get_walltime, TCG_CALL_NO_RWG, i64)
DEF_HELPER_FLAGS_2(set_alarm, TCG_CALL_NO_RWG, void, env, i64) DEF_HELPER_FLAGS_2(set_alarm, TCG_CALL_NO_RWG, void, env, i64)
#endif #endif
#include "exec/def-helper.h"

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
/* Softmmu support */ /* Softmmu support */

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
#include "qemu/timer.h" #include "qemu/timer.h"

View File

@ -22,9 +22,8 @@
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#include "tcg-op.h" #include "tcg-op.h"
#include "helper.h" #include "exec/helper-proto.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
#undef ALPHA_DEBUG_DISAS #undef ALPHA_DEBUG_DISAS
#define CONFIG_SOFTFLOAT_INLINE #define CONFIG_SOFTFLOAT_INLINE

View File

@ -13,7 +13,7 @@
#include "cpu.h" #include "cpu.h"
#include "exec/exec-all.h" #include "exec/exec-all.h"
#include "helper.h" #include "exec/helper-proto.h"
union AES_STATE { union AES_STATE {
uint8_t bytes[16]; uint8_t bytes[16];

View File

@ -19,7 +19,7 @@
#include "cpu.h" #include "cpu.h"
#include "exec/gdbstub.h" #include "exec/gdbstub.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
#include "qemu/bitops.h" #include "qemu/bitops.h"

View File

@ -1,7 +1,7 @@
#include "cpu.h" #include "cpu.h"
#include "internals.h" #include "internals.h"
#include "exec/gdbstub.h" #include "exec/gdbstub.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#include "sysemu/arch_init.h" #include "sysemu/arch_init.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"

View File

@ -1,5 +1,3 @@
#include "exec/def-helper.h"
DEF_HELPER_FLAGS_1(clz, TCG_CALL_NO_RWG_SE, i32, i32) DEF_HELPER_FLAGS_1(clz, TCG_CALL_NO_RWG_SE, i32, i32)
DEF_HELPER_FLAGS_1(sxtb16, TCG_CALL_NO_RWG_SE, i32, i32) DEF_HELPER_FLAGS_1(sxtb16, TCG_CALL_NO_RWG_SE, i32, i32)
DEF_HELPER_FLAGS_1(uxtb16, TCG_CALL_NO_RWG_SE, i32, i32) DEF_HELPER_FLAGS_1(uxtb16, TCG_CALL_NO_RWG_SE, i32, i32)
@ -521,5 +519,3 @@ DEF_HELPER_2(dc_zva, void, env, i64)
#ifdef TARGET_AARCH64 #ifdef TARGET_AARCH64
#include "helper-a64.h" #include "helper-a64.h"
#endif #endif
#include "exec/def-helper.h"

View File

@ -24,7 +24,7 @@
#include "cpu.h" #include "cpu.h"
#include "exec/exec-all.h" #include "exec/exec-all.h"
#include "helper.h" #include "exec/helper-proto.h"
/* iwMMXt macros extracted from GNU gdb. */ /* iwMMXt macros extracted from GNU gdb. */

View File

@ -11,7 +11,7 @@
#include "cpu.h" #include "cpu.h"
#include "exec/exec-all.h" #include "exec/exec-all.h"
#include "helper.h" #include "exec/helper-proto.h"
#define SIGNBIT (uint32_t)0x80000000 #define SIGNBIT (uint32_t)0x80000000
#define SIGNBIT64 ((uint64_t)1 << 63) #define SIGNBIT64 ((uint64_t)1 << 63)

View File

@ -17,7 +17,7 @@
* License along with this library; if not, see <http://www.gnu.org/licenses/>. * License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "internals.h" #include "internals.h"
#define SIGNBIT (uint32_t)0x80000000 #define SIGNBIT (uint32_t)0x80000000

View File

@ -31,9 +31,8 @@
#include "exec/gen-icount.h" #include "exec/gen-icount.h"
#include "helper.h" #include "exec/helper-proto.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
static TCGv_i64 cpu_X[32]; static TCGv_i64 cpu_X[32];
static TCGv_i64 cpu_pc; static TCGv_i64 cpu_pc;

View File

@ -31,9 +31,8 @@
#include "qemu/log.h" #include "qemu/log.h"
#include "qemu/bitops.h" #include "qemu/bitops.h"
#include "helper.h" #include "exec/helper-proto.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
#define ENABLE_ARCH_4T arm_feature(env, ARM_FEATURE_V4T) #define ENABLE_ARCH_4T arm_feature(env, ARM_FEATURE_V4T)
#define ENABLE_ARCH_5 arm_feature(env, ARM_FEATURE_V5) #define ENABLE_ARCH_5 arm_feature(env, ARM_FEATURE_V5)

View File

@ -1,5 +1,3 @@
#include "exec/def-helper.h"
DEF_HELPER_2(raise_exception, void, env, i32) DEF_HELPER_2(raise_exception, void, env, i32)
DEF_HELPER_2(tlb_flush_pid, void, env, i32) DEF_HELPER_2(tlb_flush_pid, void, env, i32)
DEF_HELPER_2(spc_write, void, env, i32) DEF_HELPER_2(spc_write, void, env, i32)
@ -25,5 +23,3 @@ DEF_HELPER_FLAGS_3(evaluate_flags_move_4, TCG_CALL_NO_SE, i32, env, i32, i32)
DEF_HELPER_FLAGS_3(evaluate_flags_move_2, TCG_CALL_NO_SE, i32, env, i32, i32) DEF_HELPER_FLAGS_3(evaluate_flags_move_2, TCG_CALL_NO_SE, i32, env, i32, i32)
DEF_HELPER_1(evaluate_flags, void, env) DEF_HELPER_1(evaluate_flags, void, env)
DEF_HELPER_1(top_evaluate_flags, void, env) DEF_HELPER_1(top_evaluate_flags, void, env)
#include "exec/def-helper.h"

View File

@ -20,7 +20,7 @@
#include "cpu.h" #include "cpu.h"
#include "mmu.h" #include "mmu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
//#define CRIS_OP_HELPER_DEBUG //#define CRIS_OP_HELPER_DEBUG

View File

@ -26,12 +26,11 @@
#include "cpu.h" #include "cpu.h"
#include "disas/disas.h" #include "disas/disas.h"
#include "tcg-op.h" #include "tcg-op.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "mmu.h" #include "mmu.h"
#include "crisv32-decode.h" #include "crisv32-decode.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
#define DISAS_CRIS 0 #define DISAS_CRIS 0
#if DISAS_CRIS #if DISAS_CRIS

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
const uint8_t parity_table[256] = { const uint8_t parity_table[256] = {
CC_P, 0, 0, CC_P, 0, CC_P, CC_P, 0, CC_P, 0, 0, CC_P, 0, CC_P, CC_P, 0,

View File

@ -20,7 +20,7 @@
#include "cpu.h" #include "cpu.h"
#include "qemu/log.h" #include "qemu/log.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
#include "helper.h" #include "exec/helper-proto.h"
#if 0 #if 0
#define raise_exception_err(env, a, b) \ #define raise_exception_err(env, a, b) \

View File

@ -19,7 +19,7 @@
#include <math.h> #include <math.h>
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "qemu/aes.h" #include "qemu/aes.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"

View File

@ -1,5 +1,3 @@
#include "exec/def-helper.h"
DEF_HELPER_FLAGS_4(cc_compute_all, TCG_CALL_NO_RWG_SE, tl, tl, tl, tl, int) DEF_HELPER_FLAGS_4(cc_compute_all, TCG_CALL_NO_RWG_SE, tl, tl, tl, tl, int)
DEF_HELPER_FLAGS_4(cc_compute_c, TCG_CALL_NO_RWG_SE, tl, tl, tl, tl, int) DEF_HELPER_FLAGS_4(cc_compute_c, TCG_CALL_NO_RWG_SE, tl, tl, tl, tl, int)
@ -219,5 +217,3 @@ DEF_HELPER_3(rcrl, tl, env, tl, tl)
DEF_HELPER_3(rclq, tl, env, tl, tl) DEF_HELPER_3(rclq, tl, env, tl, tl)
DEF_HELPER_3(rcrq, tl, env, tl, tl) DEF_HELPER_3(rcrq, tl, env, tl, tl)
#endif #endif
#include "exec/def-helper.h"

View File

@ -19,7 +19,7 @@
#include "cpu.h" #include "cpu.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#include "helper.h" #include "exec/helper-proto.h"
//#define DEBUG_MULDIV //#define DEBUG_MULDIV

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#if !defined(CONFIG_USER_ONLY) #if !defined(CONFIG_USER_ONLY)
#include "exec/softmmu_exec.h" #include "exec/softmmu_exec.h"

View File

@ -19,7 +19,7 @@
#include "cpu.h" #include "cpu.h"
#include "exec/ioport.h" #include "exec/ioport.h"
#include "helper.h" #include "exec/helper-proto.h"
#if !defined(CONFIG_USER_ONLY) #if !defined(CONFIG_USER_ONLY)
#include "exec/softmmu_exec.h" #include "exec/softmmu_exec.h"

View File

@ -20,7 +20,7 @@
#include "cpu.h" #include "cpu.h"
#include "qemu/log.h" #include "qemu/log.h"
#include "helper.h" #include "exec/helper-proto.h"
//#define DEBUG_PCALL //#define DEBUG_PCALL

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
/* SMM support */ /* SMM support */

View File

@ -19,7 +19,7 @@
#include "cpu.h" #include "cpu.h"
#include "exec/cpu-all.h" #include "exec/cpu-all.h"
#include "helper.h" #include "exec/helper-proto.h"
#if !defined(CONFIG_USER_ONLY) #if !defined(CONFIG_USER_ONLY)
#include "exec/softmmu_exec.h" #include "exec/softmmu_exec.h"

View File

@ -28,9 +28,8 @@
#include "disas/disas.h" #include "disas/disas.h"
#include "tcg-op.h" #include "tcg-op.h"
#include "helper.h" #include "exec/helper-proto.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
#define PREFIX_REPZ 0x01 #define PREFIX_REPZ 0x01
#define PREFIX_REPNZ 0x02 #define PREFIX_REPNZ 0x02

View File

@ -1,5 +1,3 @@
#include "exec/def-helper.h"
DEF_HELPER_2(raise_exception, void, env, i32) DEF_HELPER_2(raise_exception, void, env, i32)
DEF_HELPER_1(hlt, void, env) DEF_HELPER_1(hlt, void, env)
DEF_HELPER_3(wcsr_bp, void, env, i32, i32) DEF_HELPER_3(wcsr_bp, void, env, i32, i32)
@ -14,5 +12,3 @@ DEF_HELPER_1(rcsr_ip, i32, env)
DEF_HELPER_1(rcsr_jtx, i32, env) DEF_HELPER_1(rcsr_jtx, i32, env)
DEF_HELPER_1(rcsr_jrx, i32, env) DEF_HELPER_1(rcsr_jrx, i32, env)
DEF_HELPER_1(ill, void, env) DEF_HELPER_1(ill, void, env)
#include "exec/def-helper.h"

View File

@ -15,7 +15,7 @@
#include <string.h> #include <string.h>
#include <stddef.h> #include <stddef.h>
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "qemu/log.h" #include "qemu/log.h"
#include "exec/softmmu-semi.h" #include "exec/softmmu-semi.h"

View File

@ -1,6 +1,6 @@
#include <assert.h> #include <assert.h>
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#include "hw/lm32/lm32_pic.h" #include "hw/lm32/lm32_pic.h"

View File

@ -19,13 +19,12 @@
#include "cpu.h" #include "cpu.h"
#include "disas/disas.h" #include "disas/disas.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "tcg-op.h" #include "tcg-op.h"
#include "hw/lm32/lm32_pic.h" #include "hw/lm32/lm32_pic.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
#define DISAS_LM32 1 #define DISAS_LM32 1
#if DISAS_LM32 #if DISAS_LM32

View File

@ -21,7 +21,7 @@
#include "cpu.h" #include "cpu.h"
#include "exec/gdbstub.h" #include "exec/gdbstub.h"
#include "helper.h" #include "exec/helper-proto.h"
#define SIGNBIT (1u << 31) #define SIGNBIT (1u << 31)

View File

@ -1,5 +1,3 @@
#include "exec/def-helper.h"
DEF_HELPER_1(bitrev, i32, i32) DEF_HELPER_1(bitrev, i32, i32)
DEF_HELPER_1(ff1, i32, i32) DEF_HELPER_1(ff1, i32, i32)
DEF_HELPER_2(sats, i32, i32, i32) DEF_HELPER_2(sats, i32, i32, i32)
@ -50,5 +48,3 @@ DEF_HELPER_3(set_mac_extu, void, env, i32, i32)
DEF_HELPER_2(flush_flags, void, env, i32) DEF_HELPER_2(flush_flags, void, env, i32)
DEF_HELPER_2(raise_exception, void, env, i32) DEF_HELPER_2(raise_exception, void, env, i32)
#include "exec/def-helper.h"

View File

@ -17,7 +17,7 @@
* License along with this library; if not, see <http://www.gnu.org/licenses/>. * License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#if defined(CONFIG_USER_ONLY) #if defined(CONFIG_USER_ONLY)

View File

@ -23,9 +23,8 @@
#include "tcg-op.h" #include "tcg-op.h"
#include "qemu/log.h" #include "qemu/log.h"
#include "helper.h" #include "exec/helper-proto.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
//#define DEBUG_DISPATCH 1 //#define DEBUG_DISPATCH 1

View File

@ -1,5 +1,3 @@
#include "exec/def-helper.h"
DEF_HELPER_2(raise_exception, void, env, i32) DEF_HELPER_2(raise_exception, void, env, i32)
DEF_HELPER_1(debug, void, env) DEF_HELPER_1(debug, void, env)
DEF_HELPER_FLAGS_3(carry, TCG_CALL_NO_RWG_SE, i32, i32, i32, i32) DEF_HELPER_FLAGS_3(carry, TCG_CALL_NO_RWG_SE, i32, i32, i32, i32)
@ -37,5 +35,3 @@ DEF_HELPER_2(stackprot, void, env, i32)
DEF_HELPER_2(get, i32, i32, i32) DEF_HELPER_2(get, i32, i32, i32)
DEF_HELPER_3(put, void, i32, i32, i32) DEF_HELPER_3(put, void, i32, i32, i32)
#include "exec/def-helper.h"

View File

@ -20,7 +20,7 @@
#include <assert.h> #include <assert.h>
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#define D(x) #define D(x)

View File

@ -21,11 +21,9 @@
#include "cpu.h" #include "cpu.h"
#include "disas/disas.h" #include "disas/disas.h"
#include "tcg-op.h" #include "tcg-op.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "microblaze-decode.h" #include "microblaze-decode.h"
#include "exec/helper-gen.h"
#define GEN_HELPER 1
#include "helper.h"
#define SIM_COMPAT 0 #define SIM_COMPAT 0
#define DISAS_GNU 1 #define DISAS_GNU 1

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "qemu/bitops.h" #include "qemu/bitops.h"
/* As the byte ordering doesn't matter, i.e. all columns are treated /* As the byte ordering doesn't matter, i.e. all columns are treated

View File

@ -1,5 +1,3 @@
#include "exec/def-helper.h"
DEF_HELPER_3(raise_exception_err, noreturn, env, i32, int) DEF_HELPER_3(raise_exception_err, noreturn, env, i32, int)
DEF_HELPER_2(raise_exception, noreturn, env, i32) DEF_HELPER_2(raise_exception, noreturn, env, i32)
@ -691,7 +689,3 @@ DEF_HELPER_FLAGS_3(dmthlip, 0, void, tl, tl, env)
#endif #endif
DEF_HELPER_FLAGS_3(wrdsp, 0, void, tl, tl, env) DEF_HELPER_FLAGS_3(wrdsp, 0, void, tl, tl, env)
DEF_HELPER_FLAGS_2(rddsp, 0, tl, tl, env) DEF_HELPER_FLAGS_2(rddsp, 0, tl, tl, env)
#include "exec/def-helper.h"

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
/* If the byte ordering doesn't matter, i.e. all columns are treated /* If the byte ordering doesn't matter, i.e. all columns are treated
identically, then this union can be used directly. If byte ordering identically, then this union can be used directly. If byte ordering

View File

@ -20,7 +20,7 @@
#include "cpu.h" #include "cpu.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#include "helper.h" #include "exec/helper-proto.h"
#if !defined(CONFIG_USER_ONLY) #if !defined(CONFIG_USER_ONLY)
#include "exec/softmmu_exec.h" #include "exec/softmmu_exec.h"

View File

@ -25,9 +25,8 @@
#include "disas/disas.h" #include "disas/disas.h"
#include "tcg-op.h" #include "tcg-op.h"
#include "helper.h" #include "exec/helper-proto.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
#define MIPS_DEBUG_DISAS 0 #define MIPS_DEBUG_DISAS 0
//#define MIPS_DEBUG_SIGN_EXTENSIONS //#define MIPS_DEBUG_SIGN_EXTENSIONS

View File

@ -27,7 +27,7 @@
#include "exec/exec-all.h" #include "exec/exec-all.h"
#include "exec/softmmu_exec.h" #include "exec/softmmu_exec.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#include "helper.h" #include "exec/helper-proto.h"
#define MMUSUFFIX _mmu #define MMUSUFFIX _mmu

View File

@ -1,9 +1,5 @@
#include "exec/def-helper.h"
DEF_HELPER_2(raise_exception, void, env, int) DEF_HELPER_2(raise_exception, void, env, int)
DEF_HELPER_1(debug, void, env) DEF_HELPER_1(debug, void, env)
DEF_HELPER_FLAGS_3(div, TCG_CALL_NO_WG, i32, env, i32, i32) DEF_HELPER_FLAGS_3(div, TCG_CALL_NO_WG, i32, env, i32, i32)
DEF_HELPER_FLAGS_3(udiv, TCG_CALL_NO_WG, i32, env, i32, i32) DEF_HELPER_FLAGS_3(udiv, TCG_CALL_NO_WG, i32, env, i32, i32)
#include "exec/def-helper.h"

View File

@ -33,9 +33,8 @@
#include "disas/disas.h" #include "disas/disas.h"
#include "tcg-op.h" #include "tcg-op.h"
#include "helper.h" #include "exec/helper-proto.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
/* This is the state at translation time. */ /* This is the state at translation time. */
typedef struct DisasContext { typedef struct DisasContext {

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "exception.h" #include "exception.h"
void HELPER(exception)(CPUOpenRISCState *env, uint32_t excp) void HELPER(exception)(CPUOpenRISCState *env, uint32_t excp)

View File

@ -19,7 +19,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "exception.h" #include "exception.h"
static inline uint32_t ieee_ex_to_openrisc(OpenRISCCPU *cpu, int fexcp) static inline uint32_t ieee_ex_to_openrisc(OpenRISCCPU *cpu, int fexcp)

View File

@ -17,8 +17,6 @@
* License along with this library; if not, see <http://www.gnu.org/licenses/>. * License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/ */
#include "exec/def-helper.h"
/* exception */ /* exception */
DEF_HELPER_FLAGS_2(exception, 0, void, env, i32) DEF_HELPER_FLAGS_2(exception, 0, void, env, i32)
@ -66,5 +64,3 @@ DEF_HELPER_FLAGS_1(rfe, 0, void, env)
/* sys */ /* sys */
DEF_HELPER_FLAGS_4(mtspr, 0, void, env, tl, tl, tl) DEF_HELPER_FLAGS_4(mtspr, 0, void, env, tl, tl, tl)
DEF_HELPER_FLAGS_4(mfspr, 0, tl, env, tl, tl, tl) DEF_HELPER_FLAGS_4(mfspr, 0, tl, env, tl, tl, tl)
#include "exec/def-helper.h"

View File

@ -19,7 +19,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "exception.h" #include "exception.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"

View File

@ -19,7 +19,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
void HELPER(rfe)(CPUOpenRISCState *env) void HELPER(rfe)(CPUOpenRISCState *env)
{ {

View File

@ -19,7 +19,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#define TO_SPR(group, number) (((group) << 11) + (number)) #define TO_SPR(group, number) (((group) << 11) + (number))

View File

@ -27,9 +27,8 @@
#include "config.h" #include "config.h"
#include "qemu/bitops.h" #include "qemu/bitops.h"
#include "helper.h" #include "exec/helper-proto.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
#define OPENRISC_DISAS #define OPENRISC_DISAS

View File

@ -17,7 +17,7 @@
* License along with this library; if not, see <http://www.gnu.org/licenses/>. * License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "helper_regs.h" #include "helper_regs.h"

View File

@ -17,7 +17,7 @@
* License along with this library; if not, see <http://www.gnu.org/licenses/>. * License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
/*****************************************************************************/ /*****************************************************************************/
/* Floating point operations helpers */ /* Floating point operations helpers */

View File

@ -1,5 +1,3 @@
#include "exec/def-helper.h"
DEF_HELPER_3(raise_exception_err, void, env, i32, i32) DEF_HELPER_3(raise_exception_err, void, env, i32, i32)
DEF_HELPER_2(raise_exception, void, env, i32) DEF_HELPER_2(raise_exception, void, env, i32)
DEF_HELPER_4(tw, void, env, tl, tl, i32) DEF_HELPER_4(tw, void, env, tl, tl, i32)
@ -613,5 +611,3 @@ DEF_HELPER_3(store_dbatu, void, env, i32, tl)
DEF_HELPER_3(store_601_batl, void, env, i32, tl) DEF_HELPER_3(store_601_batl, void, env, i32, tl)
DEF_HELPER_3(store_601_batu, void, env, i32, tl) DEF_HELPER_3(store_601_batu, void, env, i32, tl)
#endif #endif
#include "exec/def-helper.h"

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "helper_regs.h" #include "helper_regs.h"
/*****************************************************************************/ /*****************************************************************************/

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "helper_regs.h" #include "helper_regs.h"

View File

@ -17,7 +17,7 @@
* License along with this library; if not, see <http://www.gnu.org/licenses/>. * License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "helper_regs.h" #include "helper_regs.h"

View File

@ -19,7 +19,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "sysemu/kvm.h" #include "sysemu/kvm.h"
#include "kvm_ppc.h" #include "kvm_ppc.h"
#include "mmu-hash32.h" #include "mmu-hash32.h"

View File

@ -18,7 +18,7 @@
* License along with this library; if not, see <http://www.gnu.org/licenses/>. * License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "sysemu/kvm.h" #include "sysemu/kvm.h"
#include "kvm_ppc.h" #include "kvm_ppc.h"
#include "mmu-hash64.h" #include "mmu-hash64.h"

View File

@ -17,7 +17,7 @@
* License along with this library; if not, see <http://www.gnu.org/licenses/>. * License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "sysemu/kvm.h" #include "sysemu/kvm.h"
#include "kvm_ppc.h" #include "kvm_ppc.h"
#include "mmu-hash64.h" #include "mmu-hash64.h"

View File

@ -17,7 +17,7 @@
* License along with this library; if not, see <http://www.gnu.org/licenses/>. * License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
/*****************************************************************************/ /*****************************************************************************/
/* SPR accesses */ /* SPR accesses */

View File

@ -23,9 +23,8 @@
#include "tcg-op.h" #include "tcg-op.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#include "helper.h" #include "exec/helper-proto.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
#define CPU_SINGLE_STEP 0x1 #define CPU_SINGLE_STEP 0x1
#define CPU_BRANCH_STEP 0x2 #define CPU_BRANCH_STEP 0x2

View File

@ -19,7 +19,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
/* #define DEBUG_HELPER */ /* #define DEBUG_HELPER */

View File

@ -19,7 +19,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#if !defined(CONFIG_USER_ONLY) #if !defined(CONFIG_USER_ONLY)
#include "exec/softmmu_exec.h" #include "exec/softmmu_exec.h"

View File

@ -1,5 +1,3 @@
#include "exec/def-helper.h"
DEF_HELPER_2(exception, noreturn, env, i32) DEF_HELPER_2(exception, noreturn, env, i32)
DEF_HELPER_FLAGS_4(nc, TCG_CALL_NO_WG, i32, env, i32, i64, i64) DEF_HELPER_FLAGS_4(nc, TCG_CALL_NO_WG, i32, env, i32, i64, i64)
DEF_HELPER_FLAGS_4(oc, TCG_CALL_NO_WG, i32, env, i32, i64, i64) DEF_HELPER_FLAGS_4(oc, TCG_CALL_NO_WG, i32, env, i32, i64, i64)
@ -115,5 +113,3 @@ DEF_HELPER_FLAGS_1(ptlb, TCG_CALL_NO_RWG, void, env)
DEF_HELPER_2(lra, i64, env, i64) DEF_HELPER_2(lra, i64, env, i64)
DEF_HELPER_FLAGS_3(stura, TCG_CALL_NO_WG, void, env, i64, i64) DEF_HELPER_FLAGS_3(stura, TCG_CALL_NO_WG, void, env, i64, i64)
#endif #endif
#include "exec/def-helper.h"

View File

@ -20,7 +20,7 @@
#include "cpu.h" #include "cpu.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#include "helper.h" #include "exec/helper-proto.h"
/* #define DEBUG_HELPER */ /* #define DEBUG_HELPER */
#ifdef DEBUG_HELPER #ifdef DEBUG_HELPER

View File

@ -19,7 +19,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
/*****************************************************************************/ /*****************************************************************************/
/* Softmmu support */ /* Softmmu support */

View File

@ -21,7 +21,7 @@
#include "cpu.h" #include "cpu.h"
#include "exec/memory.h" #include "exec/memory.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#include "helper.h" #include "exec/helper-proto.h"
#include <string.h> #include <string.h>
#include "sysemu/kvm.h" #include "sysemu/kvm.h"
#include "qemu/timer.h" #include "qemu/timer.h"

View File

@ -38,9 +38,8 @@
static TCGv_ptr cpu_env; static TCGv_ptr cpu_env;
#include "exec/gen-icount.h" #include "exec/gen-icount.h"
#include "helper.h" #include "exec/helper-proto.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
/* Information that (most) every instruction needs to manipulate. */ /* Information that (most) every instruction needs to manipulate. */

View File

@ -1,5 +1,3 @@
#include "exec/def-helper.h"
DEF_HELPER_1(ldtlb, void, env) DEF_HELPER_1(ldtlb, void, env)
DEF_HELPER_1(raise_illegal_instruction, noreturn, env) DEF_HELPER_1(raise_illegal_instruction, noreturn, env)
DEF_HELPER_1(raise_slot_illegal_instruction, noreturn, env) DEF_HELPER_1(raise_slot_illegal_instruction, noreturn, env)
@ -46,5 +44,3 @@ DEF_HELPER_2(ftrc_FT, i32, env, f32)
DEF_HELPER_2(ftrc_DT, i32, env, f64) DEF_HELPER_2(ftrc_DT, i32, env, f64)
DEF_HELPER_3(fipr, void, env, i32, i32) DEF_HELPER_3(fipr, void, env, i32, i32)
DEF_HELPER_2(ftrv, void, env, i32) DEF_HELPER_2(ftrv, void, env, i32)
#include "exec/def-helper.h"

View File

@ -19,7 +19,7 @@
#include <assert.h> #include <assert.h>
#include <stdlib.h> #include <stdlib.h>
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#ifndef CONFIG_USER_ONLY #ifndef CONFIG_USER_ONLY
#include "exec/softmmu_exec.h" #include "exec/softmmu_exec.h"

View File

@ -24,9 +24,8 @@
#include "disas/disas.h" #include "disas/disas.h"
#include "tcg-op.h" #include "tcg-op.h"
#include "helper.h" #include "exec/helper-proto.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
typedef struct DisasContext { typedef struct DisasContext {
struct TranslationBlock *tb; struct TranslationBlock *tb;

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
static uint32_t compute_all_flags(CPUSPARCState *env) static uint32_t compute_all_flags(CPUSPARCState *env)
{ {

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#define QT0 (env->qt0) #define QT0 (env->qt0)
#define QT1 (env->qt1) #define QT1 (env->qt1)

View File

@ -19,7 +19,7 @@
#include "cpu.h" #include "cpu.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
void helper_raise_exception(CPUSPARCState *env, int tt) void helper_raise_exception(CPUSPARCState *env, int tt)

View File

@ -1,5 +1,3 @@
#include "exec/def-helper.h"
#ifndef TARGET_SPARC64 #ifndef TARGET_SPARC64
DEF_HELPER_1(rett, void, env) DEF_HELPER_1(rett, void, env)
DEF_HELPER_2(wrpsr, void, env, tl) DEF_HELPER_2(wrpsr, void, env, tl)
@ -175,5 +173,3 @@ VIS_CMPHELPER(cmpne)
#undef VIS_CMPHELPER #undef VIS_CMPHELPER
DEF_HELPER_1(compute_psr, void, env) DEF_HELPER_1(compute_psr, void, env)
DEF_HELPER_1(compute_C_icc, i32, env) DEF_HELPER_1(compute_C_icc, i32, env)
#include "exec/def-helper.h"

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "trace.h" #include "trace.h"
#define DEBUG_PCALL #define DEBUG_PCALL

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
//#define DEBUG_MMU //#define DEBUG_MMU
//#define DEBUG_MXCC //#define DEBUG_MXCC

View File

@ -26,11 +26,10 @@
#include "cpu.h" #include "cpu.h"
#include "disas/disas.h" #include "disas/disas.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "tcg-op.h" #include "tcg-op.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
#define DEBUG_DISAS #define DEBUG_DISAS

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
/* This function uses non-native bit order */ /* This function uses non-native bit order */
#define GET_FIELD(X, FROM, TO) \ #define GET_FIELD(X, FROM, TO) \

View File

@ -18,7 +18,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "trace.h" #include "trace.h"
static inline void memcpy32(target_ulong *dst, const target_ulong *src) static inline void memcpy32(target_ulong *dst, const target_ulong *src)

View File

@ -11,7 +11,7 @@
#include "cpu.h" #include "cpu.h"
#include "exec/gdbstub.h" #include "exec/gdbstub.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#ifndef CONFIG_USER_ONLY #ifndef CONFIG_USER_ONLY
#include "ui/console.h" #include "ui/console.h"

View File

@ -6,7 +6,6 @@
* published by the Free Software Foundation, or (at your option) any * published by the Free Software Foundation, or (at your option) any
* later version. See the COPYING file in the top-level directory. * later version. See the COPYING file in the top-level directory.
*/ */
#include "exec/def-helper.h"
#ifndef CONFIG_USER_ONLY #ifndef CONFIG_USER_ONLY
DEF_HELPER_4(cp0_set, void, env, i32, i32, i32) DEF_HELPER_4(cp0_set, void, env, i32, i32, i32)
@ -64,5 +63,3 @@ DEF_HELPER_2(ucf64_si2df, f64, f32, env)
DEF_HELPER_2(ucf64_sf2si, f32, f32, env) DEF_HELPER_2(ucf64_sf2si, f32, f32, env)
DEF_HELPER_2(ucf64_df2si, f32, f64, env) DEF_HELPER_2(ucf64_df2si, f32, f64, env)
#include "exec/def-helper.h"

View File

@ -9,7 +9,7 @@
* later version. See the COPYING file in the top-level directory. * later version. See the COPYING file in the top-level directory.
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#define SIGNBIT (uint32_t)0x80000000 #define SIGNBIT (uint32_t)0x80000000
#define SIGNBIT64 ((uint64_t)1 << 63) #define SIGNBIT64 ((uint64_t)1 << 63)

View File

@ -19,9 +19,8 @@
#include "tcg-op.h" #include "tcg-op.h"
#include "qemu/log.h" #include "qemu/log.h"
#include "helper.h" #include "exec/helper-proto.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
/* internal defines */ /* internal defines */
typedef struct DisasContext { typedef struct DisasContext {

View File

@ -9,7 +9,7 @@
* See the COPYING file in the top-level directory. * See the COPYING file in the top-level directory.
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
/* /*
* The convention used for UniCore-F64 instructions: * The convention used for UniCore-F64 instructions:

View File

@ -1,5 +1,3 @@
#include "exec/def-helper.h"
DEF_HELPER_2(exception, noreturn, env, i32) DEF_HELPER_2(exception, noreturn, env, i32)
DEF_HELPER_3(exception_cause, noreturn, env, i32, i32) DEF_HELPER_3(exception_cause, noreturn, env, i32, i32)
DEF_HELPER_4(exception_cause_vaddr, noreturn, env, i32, i32, i32) DEF_HELPER_4(exception_cause_vaddr, noreturn, env, i32, i32, i32)
@ -58,5 +56,3 @@ DEF_HELPER_4(olt_s, void, env, i32, f32, f32)
DEF_HELPER_4(ult_s, void, env, i32, f32, f32) DEF_HELPER_4(ult_s, void, env, i32, f32, f32)
DEF_HELPER_4(ole_s, void, env, i32, f32, f32) DEF_HELPER_4(ole_s, void, env, i32, f32, f32)
DEF_HELPER_4(ule_s, void, env, i32, f32, f32) DEF_HELPER_4(ule_s, void, env, i32, f32, f32)
#include "exec/def-helper.h"

View File

@ -26,7 +26,7 @@
*/ */
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "qemu/host-utils.h" #include "qemu/host-utils.h"
#include "exec/softmmu_exec.h" #include "exec/softmmu_exec.h"
#include "exec/address-spaces.h" #include "exec/address-spaces.h"

View File

@ -37,9 +37,8 @@
#include "qemu/log.h" #include "qemu/log.h"
#include "sysemu/sysemu.h" #include "sysemu/sysemu.h"
#include "helper.h" #include "exec/helper-proto.h"
#define GEN_HELPER 1 #include "exec/helper-gen.h"
#include "helper.h"
typedef struct DisasContext { typedef struct DisasContext {
const XtensaConfig *config; const XtensaConfig *config;

View File

@ -30,7 +30,7 @@
#include <string.h> #include <string.h>
#include <stddef.h> #include <stddef.h>
#include "cpu.h" #include "cpu.h"
#include "helper.h" #include "exec/helper-proto.h"
#include "qemu/log.h" #include "qemu/log.h"
enum { enum {

Some files were not shown because too many files have changed in this diff Show More