[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 20/24] Add alpha_cpu_list.
From: |
Tristan Gingold |
Subject: |
[Qemu-devel] [PATCH 20/24] Add alpha_cpu_list. |
Date: |
Thu, 19 Mar 2009 15:35:52 +0100 |
Add alpha_cpu_list and use cpu_model to select the model in cpu_alpha_init.
Set implver and amask from the model.
Signed-off-by: Tristan Gingold <address@hidden>
---
target-alpha/cpu.h | 1 +
target-alpha/translate.c | 40 ++++++++++++++++++++++++++++++++++++++--
2 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/target-alpha/cpu.h b/target-alpha/cpu.h
index 629d72b..ae9de3c 100644
--- a/target-alpha/cpu.h
+++ b/target-alpha/cpu.h
@@ -436,6 +436,7 @@ enum {
CPUAlphaState * cpu_alpha_init (const char *cpu_model);
int cpu_alpha_exec(CPUAlphaState *s);
+void alpha_cpu_list(FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt,
...));
/* you can call this signal handler from your SIGBUS and SIGSEGV
signal handlers to inform the virtual CPU of exceptions. non zero
is returned if the signal was handled by the virtual CPU. */
diff --git a/target-alpha/translate.c b/target-alpha/translate.c
index 46ec733..bcd156f 100644
--- a/target-alpha/translate.c
+++ b/target-alpha/translate.c
@@ -2460,17 +2460,53 @@ void gen_intermediate_code_pc (CPUState *env, struct
TranslationBlock *tb)
gen_intermediate_code_internal(env, tb, 1);
}
+struct alpha_def {
+ const char *name;
+ uint32_t implver;
+ uint32_t amask;
+};
+
+static const struct alpha_def alpha_defs[] = {
+#if 0
+ { "21064", IMPLVER_2106x, 0 },
+ { "21164", IMPLVER_21164, 0 },
+#endif
+ { "21264", IMPLVER_21264, (AMASK_PREFETCH | AMASK_TRAP | AMASK_BWX
+ | AMASK_FIX) },
+};
+
+void alpha_cpu_list(FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...))
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(alpha_defs); i++)
+ (*cpu_fprintf)(f, "%s\n", alpha_defs[i].name);
+}
+
CPUAlphaState * cpu_alpha_init (const char *cpu_model)
{
CPUAlphaState *env;
uint64_t hwpcb;
+ const struct alpha_def *cpu = alpha_defs;
+
+ if (cpu_model != NULL) {
+ int i;
+ for (i = 0; i < ARRAY_SIZE(alpha_defs); i++)
+ if (strcmp (alpha_defs[i].name, cpu_model) == 0) {
+ cpu = &alpha_defs[i];
+ break;
+ }
+ if (cpu == NULL)
+ return NULL;
+ }
env = qemu_mallocz(sizeof(CPUAlphaState));
cpu_exec_init(env);
alpha_translate_init();
tlb_flush(env, 1);
- /* XXX: should not be hardcoded */
- env->implver = IMPLVER_2106x;
+
+ env->implver = cpu->implver;
+ env->amask = cpu->amask;
env->ps = 0x1F00;
#if defined (CONFIG_USER_ONLY)
env->ps |= 1 << 3;
--
1.6.2
- [Qemu-devel] [PATCH 10/24] Add square wave output support., (continued)
- [Qemu-devel] [PATCH 10/24] Add square wave output support., Tristan Gingold, 2009/03/19
- [Qemu-devel] [PATCH 11/24] Add ali1543 super IO pci device., Tristan Gingold, 2009/03/19
- [Qemu-devel] [PATCH 12/24] Add 21272 chipset (memory and pci controller for alpha), Tristan Gingold, 2009/03/19
- [Qemu-devel] [PATCH 13/24] Add target-alpha/machine.c and hw/es40.c for es40 machine emulation., Tristan Gingold, 2009/03/19
- [Qemu-devel] [PATCH 14/24] Move softmmu_helper.h from exec.h to op_helper.c on alpha., Tristan Gingold, 2009/03/19
- [Qemu-devel] [PATCH 15/24] Document which IPR are used by 21264., Tristan Gingold, 2009/03/19
- [Qemu-devel] [PATCH 16/24] tb_flush helper should flush the tb (and not the tlb)., Tristan Gingold, 2009/03/19
- [Qemu-devel] [PATCH 17/24] Add instruction name in comments for hw_ld opcode., Tristan Gingold, 2009/03/19
- [Qemu-devel] [PATCH 18/24] Remove PALCODE_ declarations (unused)., Tristan Gingold, 2009/03/19
- [Qemu-devel] [PATCH 19/24] alpha ld helpers now directly return the value., Tristan Gingold, 2009/03/19
- [Qemu-devel] [PATCH 20/24] Add alpha_cpu_list.,
Tristan Gingold <=
- [Qemu-devel] [PATCH 21/24] Alpha: lower parent irq when irq is lowered., Tristan Gingold, 2009/03/19
- [Qemu-devel] [PATCH 22/24] Move linux-user pal emulation to linux-user/, Tristan Gingold, 2009/03/19
- [Qemu-devel] [PATCH 23/24] Correctly decode hw_ld/hw_st opcodes for all alpha implementations., Tristan Gingold, 2009/03/19
- [Qemu-devel] [PATCH 24/24] Add full emulation for 21264., Tristan Gingold, 2009/03/19
- RE: [Qemu-devel] [PATCH 20/24] Add alpha_cpu_list., Krumme, Chris, 2009/03/19
- Re: [Qemu-devel] [PATCH 20/24] Add alpha_cpu_list., Tristan Gingold, 2009/03/20
- RE: [Qemu-devel] [PATCH 13/24] Add target-alpha/machine.c and hw/es40.cfor es40 machine emulation., Krumme, Chris, 2009/03/19
- Re: [Qemu-devel] [PATCH 13/24] Add target-alpha/machine.c and hw/es40.cfor es40 machine emulation., Tristan Gingold, 2009/03/20
- RE: [Qemu-devel] [PATCH 11/24] Add ali1543 super IO pci device., Krumme, Chris, 2009/03/19
- Re: [Qemu-devel] [PATCH 11/24] Add ali1543 super IO pci device., Tristan Gingold, 2009/03/20