[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 06/28] Implement missing parts of the logic for the
From: |
qemu |
Subject: |
[Qemu-devel] [PATCH 06/28] Implement missing parts of the logic for the POWER PURR |
Date: |
Tue, 15 Feb 2011 15:56:17 +1100 |
From: David Gibson <address@hidden>
The PURR (Processor Utilization Resource Register) is a register found
on recent POWER CPUs. The guts of implementing it at least enough to
get by are already present in qemu, however some of the helper
functions needed to actually wire it up are missing.
This patch adds the necessary glue, so that the PURR can be wired up
when we implement newer POWER CPU targets which include it.
Signed-off-by: David Gibson <address@hidden>
---
target-ppc/helper.h | 1 +
target-ppc/op_helper.c | 5 +++++
target-ppc/translate_init.c | 6 ++++++
3 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/target-ppc/helper.h b/target-ppc/helper.h
index 1a69cf8..4227897 100644
--- a/target-ppc/helper.h
+++ b/target-ppc/helper.h
@@ -371,6 +371,7 @@ DEF_HELPER_0(load_tbl, tl)
DEF_HELPER_0(load_tbu, tl)
DEF_HELPER_0(load_atbl, tl)
DEF_HELPER_0(load_atbu, tl)
+DEF_HELPER_0(load_purr, tl)
DEF_HELPER_0(load_601_rtcl, tl)
DEF_HELPER_0(load_601_rtcu, tl)
#if !defined(CONFIG_USER_ONLY)
diff --git a/target-ppc/op_helper.c b/target-ppc/op_helper.c
index bdb1f17..b9b5ae2 100644
--- a/target-ppc/op_helper.c
+++ b/target-ppc/op_helper.c
@@ -86,6 +86,11 @@ target_ulong helper_load_atbu (void)
return cpu_ppc_load_atbu(env);
}
+target_ulong helper_load_purr (void)
+{
+ return (target_ulong)cpu_ppc_load_purr(env);
+}
+
target_ulong helper_load_601_rtcl (void)
{
return cpu_ppc601_load_rtcl(env);
diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index dfcd949..c842330 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -209,6 +209,12 @@ static void spr_write_atbu (void *opaque, int sprn, int
gprn)
{
gen_helper_store_atbu(cpu_gpr[gprn]);
}
+
+__attribute__ (( unused ))
+static void spr_read_purr(void *opaque, int gprn, int sprn)
+{
+ gen_helper_load_purr(cpu_gpr[gprn]);
+}
#endif
#if !defined(CONFIG_USER_ONLY)
--
1.7.1
- [Qemu-devel] RFC: Implement emulation of pSeries logical partitions (v2), qemu, 2011/02/14
- [Qemu-devel] [PATCH 01/28] Add TAGS and *~ to .gitignore, qemu, 2011/02/14
- [Qemu-devel] [PATCH 03/28] Allow qemu_devtree_setprop() to take arbitrary values, qemu, 2011/02/14
- [Qemu-devel] [PATCH 06/28] Implement missing parts of the logic for the POWER PURR,
qemu <=
- [Qemu-devel] [PATCH 02/28] Clean up PowerPC SLB handling code, qemu, 2011/02/14
- [Qemu-devel] [PATCH 04/28] Add a hook to allow hypercalls to be emulated on PowerPC, qemu, 2011/02/14
- [Qemu-devel] [PATCH 05/28] Implement PowerPC slbmfee and slbmfev instructions, qemu, 2011/02/14
- [Qemu-devel] [PATCH 08/28] Clean up slb_lookup() function, qemu, 2011/02/14
- [Qemu-devel] [PATCH 07/28] Correct ppc popcntb logic, implement popcntw and popcntd, qemu, 2011/02/14
- [Qemu-devel] [PATCH 11/28] Better factor the ppc hash translation path, qemu, 2011/02/14
- [Qemu-devel] [PATCH 09/28] Parse SDR1 on mtspr instead of at translate time, qemu, 2011/02/14
- [Qemu-devel] [PATCH 10/28] Use "hash" more consistently in ppc mmu code, qemu, 2011/02/14
- [Qemu-devel] [PATCH 12/28] Support 1T segments on ppc, qemu, 2011/02/14
- [Qemu-devel] [PATCH 13/28] Add POWER7 support for ppc, qemu, 2011/02/14