qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH][MIPS] Wrap a few often used tests with unlikely()


From: Aurelien Jarno
Subject: [Qemu-devel] [PATCH][MIPS] Wrap a few often used tests with unlikely()
Date: Tue, 25 Sep 2007 17:44:40 +0200
User-agent: Mutt/1.5.13 (2006-08-11)

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
 `. `'   address@hidden         | address@hidden
   `-    people.debian.org/~aurel32 | www.aurel32.net




reply via email to

[Prev in Thread] Current Thread [Next in Thread]