From: Tristan Gingold <gingold@adacore.com>
To: qemu-devel@nongnu.org
Cc: Tristan Gingold <gingold@adacore.com>
Subject: [Qemu-devel] [PATCH 20/24] Add alpha_cpu_list.
Date: Fri, 13 Mar 2009 15:20:39 +0100 [thread overview]
Message-ID: <1236954043-91856-21-git-send-email-gingold@adacore.com> (raw)
In-Reply-To: <1236954043-91856-20-git-send-email-gingold@adacore.com>
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 <gingold@adacore.com>
---
target-alpha/cpu.h | 1 +
target-alpha/translate.c | 37 +++++++++++++++++++++++++++++++++++--
2 files changed, 36 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 51a628c..c7f7c8f 100644
--- a/target-alpha/translate.c
+++ b/target-alpha/translate.c
@@ -2460,17 +2460,50 @@ 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 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) },
+ { NULL, 0 }
+};
+
+void alpha_cpu_list(FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...))
+{
+ struct alpha_def *cpu;
+
+ for (cpu = alpha_defs; cpu->name; cpu++)
+ (*cpu_fprintf)(f, "%s\n", cpu->name);
+}
+
CPUAlphaState * cpu_alpha_init (const char *cpu_model)
{
CPUAlphaState *env;
uint64_t hwpcb;
+ struct alpha_def *cpu = alpha_defs;
+ if (cpu_model != NULL) {
+ for (cpu = alpha_defs; cpu->name; cpu++)
+ if (strcmp (cpu->name, cpu_model) == 0)
+ break;
+ if (cpu->name == 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
next prev parent reply other threads:[~2009-03-13 14:21 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-13 14:20 [Qemu-devel] [PATCH 0/24]: add alpha es40 system emulation Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 01/24] Add support for multi-level phys map Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 02/24] Fix cpu_physical_memory_rw when operating on IO blocks Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 03/24] Fix bug: palcode is at least 6 bits Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 04/24] Fix bug: do not mask address LSBs for ldwu Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 05/24] bug fix: avoid nop to override next instruction Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 06/24] Be slightly more verbose for unassigned_mem_read* Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 07/24] Increase Alpha physical address size to 44 bits Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 08/24] Allow 5 mmu indexes Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 09/24] Split cpu_mmu_index into cpu_mmu_index_data and cpu_mmu_index_code Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 10/24] Add square wave output support Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 11/24] Add ali1543 super IO pci device Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 12/24] Add 21272 chipset (memory and pci controller for alpha) Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 13/24] Add target-alpha/machine.c with es40 machine emulation Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 14/24] Move softmmu_helper.h from exec.h to op_helper.c on alpha Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 15/24] Document which IPR are used by 21264 Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 16/24] tb_flush helper should flush the tb (and not the tlb) Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 17/24] Add instruction name in comments for hw_ld opcode Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 18/24] Remove PALCODE_ declarations (unused) Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 19/24] alpha ld helpers now directly return the value Tristan Gingold
2009-03-13 14:20 ` Tristan Gingold [this message]
2009-03-13 14:20 ` [Qemu-devel] [PATCH 21/24] Alpha: lower parent irq when irq is lowered Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 22/24] Move linux-user pal emulation to linux-user/ Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 23/24] Correctly decode hw_ld/hw_st opcodes for all alpha implementations Tristan Gingold
2009-03-13 14:20 ` [Qemu-devel] [PATCH 24/24] Add full emulation for 21264 Tristan Gingold
2009-03-13 17:51 ` [Qemu-devel] [PATCH 20/24] Add alpha_cpu_list Blue Swirl
2009-03-16 8:35 ` Tristan Gingold
2009-03-13 17:58 ` [Qemu-devel] [PATCH 13/24] Add target-alpha/machine.c with es40 machine emulation Blue Swirl
2009-03-16 8:36 ` Tristan Gingold
2009-03-13 17:45 ` [Qemu-devel] [PATCH 09/24] Split cpu_mmu_index into cpu_mmu_index_data and cpu_mmu_index_code Blue Swirl
2009-03-13 17:41 ` [Qemu-devel] [PATCH 0/24]: add alpha es40 system emulation Blue Swirl
2009-03-16 8:34 ` Tristan Gingold
-- strict thread matches above, loose matches on Subject: below --
2009-03-19 14:35 [Qemu-devel] [PATCH 0/24]: add alpha es40 system emulation (v2) Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 01/24] Add support for multi-level phys map Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 02/24] Fix cpu_physical_memory_rw when operating on IO blocks Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 03/24] Fix bug: palcode is at least 6 bits Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 04/24] Fix bug: do not mask address LSBs for ldwu Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 05/24] bug fix: avoid nop to override next instruction Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 06/24] Be slightly more verbose for unassigned_mem_read* Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 07/24] Increase Alpha physical address size to 44 bits Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 08/24] Allow 5 mmu indexes Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 09/24] Split cpu_mmu_index into cpu_mmu_index_data and cpu_mmu_index_code Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 10/24] Add square wave output support Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 11/24] Add ali1543 super IO pci device Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 12/24] Add 21272 chipset (memory and pci controller for alpha) Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 13/24] Add target-alpha/machine.c and hw/es40.c for es40 machine emulation Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 14/24] Move softmmu_helper.h from exec.h to op_helper.c on alpha Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 15/24] Document which IPR are used by 21264 Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 16/24] tb_flush helper should flush the tb (and not the tlb) Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 17/24] Add instruction name in comments for hw_ld opcode Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 18/24] Remove PALCODE_ declarations (unused) Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 19/24] alpha ld helpers now directly return the value Tristan Gingold
2009-03-19 14:35 ` [Qemu-devel] [PATCH 20/24] Add alpha_cpu_list Tristan Gingold
2009-03-19 16:20 ` Krumme, Chris
2009-03-20 8:51 ` Tristan Gingold
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=1236954043-91856-21-git-send-email-gingold@adacore.com \
--to=gingold@adacore.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).