diff options
author | j_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-10-07 17:13:44 +0000 |
---|---|---|
committer | j_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-10-07 17:13:44 +0000 |
commit | b068d6a7138292de0f5c5fa6c99f0b79d4e1e7f0 (patch) | |
tree | ae7e18b4a29289cd7633294277939ac045d256a1 /target-ppc/op_helper.h | |
parent | ed26abdbc138db8fe845e5dfed4c2d8480c77a8f (diff) |
PowerPC target optimisations: make intensive use of always_inline.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3347 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/op_helper.h')
-rw-r--r-- | target-ppc/op_helper.h | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/target-ppc/op_helper.h b/target-ppc/op_helper.h index 65bee1ae72..4688bc2fa4 100644 --- a/target-ppc/op_helper.h +++ b/target-ppc/op_helper.h @@ -277,7 +277,7 @@ void do_evfsctuiz (void); /* Inlined helpers: used in micro-operation as well as helpers */ /* Generic fixed-point helpers */ -static inline int _do_cntlzw (uint32_t val) +static always_inline int _do_cntlzw (uint32_t val) { int cnt = 0; if (!(val & 0xFFFF0000UL)) { @@ -306,7 +306,7 @@ static inline int _do_cntlzw (uint32_t val) return cnt; } -static inline int _do_cntlzd (uint64_t val) +static always_inline int _do_cntlzd (uint64_t val) { int cnt = 0; #if HOST_LONG_BITS == 64 @@ -350,19 +350,19 @@ static inline int _do_cntlzd (uint64_t val) #if defined(TARGET_PPCEMB) /* SPE extension */ /* Single precision floating-point helpers */ -static inline uint32_t _do_efsabs (uint32_t val) +static always_inline uint32_t _do_efsabs (uint32_t val) { return val & ~0x80000000; } -static inline uint32_t _do_efsnabs (uint32_t val) +static always_inline uint32_t _do_efsnabs (uint32_t val) { return val | 0x80000000; } -static inline uint32_t _do_efsneg (uint32_t val) +static always_inline uint32_t _do_efsneg (uint32_t val) { return val ^ 0x80000000; } -static inline uint32_t _do_efsadd (uint32_t op1, uint32_t op2) +static always_inline uint32_t _do_efsadd (uint32_t op1, uint32_t op2) { union { uint32_t u; @@ -373,7 +373,7 @@ static inline uint32_t _do_efsadd (uint32_t op1, uint32_t op2) u1.f = float32_add(u1.f, u2.f, &env->spe_status); return u1.u; } -static inline uint32_t _do_efssub (uint32_t op1, uint32_t op2) +static always_inline uint32_t _do_efssub (uint32_t op1, uint32_t op2) { union { uint32_t u; @@ -384,7 +384,7 @@ static inline uint32_t _do_efssub (uint32_t op1, uint32_t op2) u1.f = float32_sub(u1.f, u2.f, &env->spe_status); return u1.u; } -static inline uint32_t _do_efsmul (uint32_t op1, uint32_t op2) +static always_inline uint32_t _do_efsmul (uint32_t op1, uint32_t op2) { union { uint32_t u; @@ -395,7 +395,7 @@ static inline uint32_t _do_efsmul (uint32_t op1, uint32_t op2) u1.f = float32_mul(u1.f, u2.f, &env->spe_status); return u1.u; } -static inline uint32_t _do_efsdiv (uint32_t op1, uint32_t op2) +static always_inline uint32_t _do_efsdiv (uint32_t op1, uint32_t op2) { union { uint32_t u; @@ -407,7 +407,7 @@ static inline uint32_t _do_efsdiv (uint32_t op1, uint32_t op2) return u1.u; } -static inline int _do_efststlt (uint32_t op1, uint32_t op2) +static always_inline int _do_efststlt (uint32_t op1, uint32_t op2) { union { uint32_t u; @@ -417,7 +417,7 @@ static inline int _do_efststlt (uint32_t op1, uint32_t op2) u2.u = op2; return float32_lt(u1.f, u2.f, &env->spe_status) ? 1 : 0; } -static inline int _do_efststgt (uint32_t op1, uint32_t op2) +static always_inline int _do_efststgt (uint32_t op1, uint32_t op2) { union { uint32_t u; @@ -427,7 +427,7 @@ static inline int _do_efststgt (uint32_t op1, uint32_t op2) u2.u = op2; return float32_le(u1.f, u2.f, &env->spe_status) ? 0 : 1; } -static inline int _do_efststeq (uint32_t op1, uint32_t op2) +static always_inline int _do_efststeq (uint32_t op1, uint32_t op2) { union { uint32_t u; @@ -438,7 +438,7 @@ static inline int _do_efststeq (uint32_t op1, uint32_t op2) return float32_eq(u1.f, u2.f, &env->spe_status) ? 1 : 0; } /* Double precision floating-point helpers */ -static inline int _do_efdtstlt (uint64_t op1, uint64_t op2) +static always_inline int _do_efdtstlt (uint64_t op1, uint64_t op2) { union { uint64_t u; @@ -448,7 +448,7 @@ static inline int _do_efdtstlt (uint64_t op1, uint64_t op2) u2.u = op2; return float64_lt(u1.f, u2.f, &env->spe_status) ? 1 : 0; } -static inline int _do_efdtstgt (uint64_t op1, uint64_t op2) +static always_inline int _do_efdtstgt (uint64_t op1, uint64_t op2) { union { uint64_t u; @@ -458,7 +458,7 @@ static inline int _do_efdtstgt (uint64_t op1, uint64_t op2) u2.u = op2; return float64_le(u1.f, u2.f, &env->spe_status) ? 0 : 1; } -static inline int _do_efdtsteq (uint64_t op1, uint64_t op2) +static always_inline int _do_efdtsteq (uint64_t op1, uint64_t op2) { union { uint64_t u; |