All of lore.kernel.org
 help / color / mirror / Atom feed
From: Glauber Costa <gcosta@redhat.com>
To: qemu-devel@nongnu.org
Cc: kvm-devel@lists.sourceforge.net, avi@qumranet.com
Subject: [PATCH 03/10] sparc: replace code inside ifdef with generic function
Date: Fri, 25 Apr 2008 00:23:03 -0300	[thread overview]
Message-ID: <12090938023558-git-send-email-gcosta@redhat.com> (raw)
In-Reply-To: <12090937991633-git-send-email-gcosta@redhat.com>

this patch replaced code inside specific ifdef in translate-all.c
with a generic architecture-implemented function. This leads to a
cleaner and more modular code in the generic part.
---
 target-sparc/translate.c |   20 ++++++++++++++++++++
 translate-all.c          |   18 +-----------------
 2 files changed, 21 insertions(+), 17 deletions(-)

diff --git a/target-sparc/translate.c b/target-sparc/translate.c
index 90d9278..6edf64d 100644
--- a/target-sparc/translate.c
+++ b/target-sparc/translate.c
@@ -4659,3 +4659,23 @@ void gen_intermediate_code_init(CPUSPARCState *env)
                                               gregnames[i]);
     }
 }
+
+void gen_pc_load(CPUState *env, TranslationBlock *tb,
+                unsigned long searched_pc, int pc_pos, void *puc)
+{
+    target_ulong npc;
+    env->pc = gen_opc_pc[pc_pos];
+    npc = gen_opc_npc[pc_pos];
+    if (npc == 1) {
+        /* dynamic NPC: already stored */
+    } else if (npc == 2) {
+        target_ulong t2 = (target_ulong)(unsigned long)puc;
+        /* jump PC: use T2 and the jump targets of the translation */
+        if (t2)
+            env->npc = gen_opc_jump_pc[0];
+        else
+            env->npc = gen_opc_jump_pc[1];
+    } else {
+        env->npc = npc;
+    }
+}
diff --git a/translate-all.c b/translate-all.c
index e688318..92c8f1c 100644
--- a/translate-all.c
+++ b/translate-all.c
@@ -198,23 +198,7 @@ int cpu_restore_state(TranslationBlock *tb,
 #elif defined(TARGET_ARM)
     gen_pc_load(env, tb, searched_pc, j, puc); 
 #elif defined(TARGET_SPARC)
-    {
-        target_ulong npc;
-        env->pc = gen_opc_pc[j];
-        npc = gen_opc_npc[j];
-        if (npc == 1) {
-            /* dynamic NPC: already stored */
-        } else if (npc == 2) {
-            target_ulong t2 = (target_ulong)(unsigned long)puc;
-            /* jump PC: use T2 and the jump targets of the translation */
-            if (t2)
-                env->npc = gen_opc_jump_pc[0];
-            else
-                env->npc = gen_opc_jump_pc[1];
-        } else {
-            env->npc = npc;
-        }
-    }
+    gen_pc_load(env, tb, searched_pc, j, puc); 
 #elif defined(TARGET_PPC)
     {
         int type, c;
-- 
1.5.0.6


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone

WARNING: multiple messages have this Message-ID (diff)
From: Glauber Costa <gcosta@redhat.com>
To: qemu-devel@nongnu.org
Cc: kvm-devel@lists.sourceforge.net
Subject: [Qemu-devel] [PATCH 03/10] sparc: replace code inside ifdef with generic function
Date: Fri, 25 Apr 2008 00:23:03 -0300	[thread overview]
Message-ID: <12090938023558-git-send-email-gcosta@redhat.com> (raw)
In-Reply-To: <12090937991633-git-send-email-gcosta@redhat.com>

this patch replaced code inside specific ifdef in translate-all.c
with a generic architecture-implemented function. This leads to a
cleaner and more modular code in the generic part.
---
 target-sparc/translate.c |   20 ++++++++++++++++++++
 translate-all.c          |   18 +-----------------
 2 files changed, 21 insertions(+), 17 deletions(-)

diff --git a/target-sparc/translate.c b/target-sparc/translate.c
index 90d9278..6edf64d 100644
--- a/target-sparc/translate.c
+++ b/target-sparc/translate.c
@@ -4659,3 +4659,23 @@ void gen_intermediate_code_init(CPUSPARCState *env)
                                               gregnames[i]);
     }
 }
+
+void gen_pc_load(CPUState *env, TranslationBlock *tb,
+                unsigned long searched_pc, int pc_pos, void *puc)
+{
+    target_ulong npc;
+    env->pc = gen_opc_pc[pc_pos];
+    npc = gen_opc_npc[pc_pos];
+    if (npc == 1) {
+        /* dynamic NPC: already stored */
+    } else if (npc == 2) {
+        target_ulong t2 = (target_ulong)(unsigned long)puc;
+        /* jump PC: use T2 and the jump targets of the translation */
+        if (t2)
+            env->npc = gen_opc_jump_pc[0];
+        else
+            env->npc = gen_opc_jump_pc[1];
+    } else {
+        env->npc = npc;
+    }
+}
diff --git a/translate-all.c b/translate-all.c
index e688318..92c8f1c 100644
--- a/translate-all.c
+++ b/translate-all.c
@@ -198,23 +198,7 @@ int cpu_restore_state(TranslationBlock *tb,
 #elif defined(TARGET_ARM)
     gen_pc_load(env, tb, searched_pc, j, puc); 
 #elif defined(TARGET_SPARC)
-    {
-        target_ulong npc;
-        env->pc = gen_opc_pc[j];
-        npc = gen_opc_npc[j];
-        if (npc == 1) {
-            /* dynamic NPC: already stored */
-        } else if (npc == 2) {
-            target_ulong t2 = (target_ulong)(unsigned long)puc;
-            /* jump PC: use T2 and the jump targets of the translation */
-            if (t2)
-                env->npc = gen_opc_jump_pc[0];
-            else
-                env->npc = gen_opc_jump_pc[1];
-        } else {
-            env->npc = npc;
-        }
-    }
+    gen_pc_load(env, tb, searched_pc, j, puc); 
 #elif defined(TARGET_PPC)
     {
         int type, c;
-- 
1.5.0.6

  reply	other threads:[~2008-04-25  3:23 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-25  3:23 [PATCH 0/10] Factorize code in translate.c Glauber Costa
2008-04-25  3:23 ` [Qemu-devel] " Glauber Costa
2008-04-25  3:23 ` [PATCH 01/10] i386: replace code inside ifdef with generic function Glauber Costa
2008-04-25  3:23   ` [Qemu-devel] " Glauber Costa
2008-04-25  3:23   ` [PATCH 02/10] arm: " Glauber Costa
2008-04-25  3:23     ` [Qemu-devel] " Glauber Costa
2008-04-25  3:23     ` Glauber Costa [this message]
2008-04-25  3:23       ` [Qemu-devel] [PATCH 03/10] sparc: " Glauber Costa
2008-04-25  3:23       ` [PATCH 04/10] ppc: " Glauber Costa
2008-04-25  3:23         ` [Qemu-devel] " Glauber Costa
2008-04-25  3:23         ` [PATCH 05/10] m68k: " Glauber Costa
2008-04-25  3:23           ` [Qemu-devel] " Glauber Costa
2008-04-25  3:23           ` [PATCH 06/10] mips: " Glauber Costa
2008-04-25  3:23             ` [Qemu-devel] " Glauber Costa
2008-04-25  3:23             ` [PATCH 07/10] alpha: " Glauber Costa
2008-04-25  3:23               ` [Qemu-devel] " Glauber Costa
2008-04-25  3:23               ` [PATCH 08/10] sh4: " Glauber Costa
2008-04-25  3:23                 ` [Qemu-devel] " Glauber Costa
2008-04-25  3:23                 ` [PATCH 09/10] cris: " Glauber Costa
2008-04-25  3:23                   ` [Qemu-devel] " Glauber Costa
2008-04-25  3:23                   ` [PATCH 10/10] remove arch-specific ifdefs from translate-all.c Glauber Costa
2008-04-25  3:23                     ` [Qemu-devel] " Glauber Costa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=12090938023558-git-send-email-gcosta@redhat.com \
    --to=gcosta@redhat.com \
    --cc=avi@qumranet.com \
    --cc=kvm-devel@lists.sourceforge.net \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.