qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 01/12] ARM: Export cpu_env


From: Alexander Graf
Subject: Re: [Qemu-devel] [PATCH v2 01/12] ARM: Export cpu_env
Date: Tue, 30 Apr 2013 14:33:41 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.3) Gecko/20120306 Thunderbird/10.0.3

On 04/30/2013 02:00 PM, Andreas Färber wrote:
Am 30.04.2013 13:54, schrieb Alexander Graf:
Am 30.04.2013 um 13:42 schrieb Andreas Färber<address@hidden>:

Am 30.04.2013 08:36, schrieb John Rigby:
From: Alexander Graf<address@hidden>

The cpu_env tcg variable will be used by both the AArch32 and AArch64
handling code. Unstaticify it, so that both sides can make use of it.

Signed-off-by: Alexander Graf<address@hidden>
[...]
---
target-arm/translate.c |    2 +-
target-arm/translate.h |    2 ++
2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/target-arm/translate.c b/target-arm/translate.c
index 675773a..36537bd 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -59,7 +59,7 @@ static uint32_t gen_opc_condexec_bits[OPC_BUF_SIZE];
#define DISAS_WFI 4
#define DISAS_SWI 5

-static TCGv_ptr cpu_env;
+TCGv_ptr cpu_env;
/* We reuse the same 64-bit temporaries for efficiency.  */
static TCGv_i64 cpu_V0, cpu_V1, cpu_M0;
static TCGv_i32 cpu_R[16];
diff --git a/target-arm/translate.h b/target-arm/translate.h
index e727bc6..8ba1433 100644
--- a/target-arm/translate.h
+++ b/target-arm/translate.h
@@ -24,4 +24,6 @@ typedef struct DisasContext {
     int vec_stride;
} DisasContext;

+extern TCGv_ptr cpu_env;
+
#endif /* TARGET_ARM_TRANSLATE_H */
Alex, have you checked whether the variable can be placed in qom/cpu.c
instead once for all targets? I'd hope that would be possible with an
appropriate typedef (since target_long size etc. are unknown there).
I would prefer to keep the translation context separate from the execution 
context.
Not sure if you understood my point? Exposing cpu_env from target-arm
would seem to torpedo our efforts to link target-arm and, e.g.,
target-microblaze together, since they all have cpu_env. I don't really
care if it's qom/cpu.c or tcg/shared.c or renaming to arm_cpu_env. :)

I see :). I was more coming from the angle of "we should be able to conditionally not compile TCG code". So anything that is TCG translation code and respective defines around it should be contained inside of itself.


Alex




reply via email to

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