Hi all, The patch below wraps a few often used tests with unlikely() in the hope of small speed improvements.
Cheers, Aurelien Index: target-mips/translate.c =================================================================== RCS file: /sources/qemu/qemu/target-mips/translate.c,v retrieving revision 1.102 diff -u -d -p -r1.102 translate.c --- target-mips/translate.c 25 Sep 2007 14:49:47 -0000 1.102 +++ target-mips/translate.c 25 Sep 2007 15:41:17 -0000 @@ -733,19 +733,19 @@ static inline void generate_exception (D static inline void check_cp0_enabled(DisasContext *ctx) { - if (!(ctx->hflags & MIPS_HFLAG_CP0)) + if (unlikely(!(ctx->hflags & MIPS_HFLAG_CP0))) generate_exception_err(ctx, EXCP_CpU, 1); } static inline void check_cp1_enabled(DisasContext *ctx) { - if (!(ctx->hflags & MIPS_HFLAG_FPU)) + if (unlikely(!(ctx->hflags & MIPS_HFLAG_FPU))) generate_exception_err(ctx, EXCP_CpU, 1); } static inline void check_cp1_64bitmode(DisasContext *ctx) { - if (!(ctx->hflags & MIPS_HFLAG_F64)) + if (unlikely(!(ctx->hflags & MIPS_HFLAG_F64))) generate_exception(ctx, EXCP_RI); } @@ -762,7 +762,7 @@ static inline void check_cp1_64bitmode(D */ void check_cp1_registers(DisasContext *ctx, int regs) { - if (!(ctx->hflags & MIPS_HFLAG_F64) && (regs & 1)) + if (unlikely(!(ctx->hflags & MIPS_HFLAG_F64) && (regs & 1))) generate_exception(ctx, EXCP_RI); } @@ -778,7 +778,7 @@ static inline void check_insn(CPUState * CPU is not MIPS MT capable. */ static inline void check_mips_mt(CPUState *env, DisasContext *ctx) { - if (!(env->CP0_Config3 & (1 << CP0C3_MT))) + if (unlikely(!(env->CP0_Config3 & (1 << CP0C3_MT)))) generate_exception(ctx, EXCP_RI); } @@ -786,7 +786,7 @@ static inline void check_mips_mt(CPUStat instructions are not enabled. */ static inline void check_mips_64(DisasContext *ctx) { - if (!(ctx->hflags & MIPS_HFLAG_64)) + if (unlikely(!(ctx->hflags & MIPS_HFLAG_64))) generate_exception(ctx, EXCP_RI); } -- .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73 : :' : Debian developer | Electrical Engineer `. `' [EMAIL PROTECTED] | [EMAIL PROTECTED] `- people.debian.org/~aurel32 | www.aurel32.net