[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 6/6] target-alpha: Add high-resolution access to
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH 6/6] target-alpha: Add high-resolution access to wall clock and an alarm. |
Date: |
Fri, 26 Aug 2011 10:03:35 -1000 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.20) Gecko/20110817 Fedora/3.1.12-1.fc14 Thunderbird/3.1.12 |
On 08/26/2011 06:36 AM, Peter Maydell wrote:
> Look at the way target-i386 and target-mips use gen_io_start()
> and gen_io_end() around x86 io insns and MIPS mtc0. I think
> that what you need is (a) to bracket with gen_io_start/end
> and (b) to end the translation block, but that's really just
> guesswork from the existing code...
I'll be applying this on top of 6/6. Look sane?
r~
---
diff --git a/target-alpha/translate.c b/target-alpha/translate.c
index 37f2f20..8f0dc3e 100644
--- a/target-alpha/translate.c
+++ b/target-alpha/translate.c
@@ -1609,7 +1609,17 @@ static void gen_mfpr(int ra, int regno)
if (regno == 250) {
/* WALL_TIME */
- gen_helper_get_time(cpu_ir[ra]);
+ if (use_iocount) {
+ /* Mark as an IO operation because we read the time. */
+ gen_io_start();
+ gen_helper_get_time(cpu_ir[ra]);
+ gen_io_end();
+ /* Other targets break the TB to be able to take timer
+ interrupts immediately. This doesn't apply to Alpha
+ because we never take interrupts in PALmode. */
+ } else {
+ gen_helper_get_time(cpu_ir[ra]);
+ }
return;
}
@@ -1661,7 +1671,14 @@ static ExitStatus gen_mtpr(DisasContext *ctx, int rb,
int regno)
case 251:
/* ALARM */
- gen_helper_set_alarm(tmp);
+ if (use_icount) {
+ /* Mark as an IO operation because we reference the time. */
+ gen_io_start();
+ gen_helper_set_alarm(tmp);
+ gen_io_end();
+ } else {
+ gen_helper_set_alarm(tmp);
+ }
break;
default:
- [Qemu-devel] [PULL][PATCH 0/6] Alpha system emulation, v9, Richard Henderson, 2011/08/25
- [Qemu-devel] [PATCH 3/6] target-alpha: Add CLIPPER emulation., Richard Henderson, 2011/08/25
- [Qemu-devel] [PATCH 4/6] target-alpha: Implement WAIT IPR., Richard Henderson, 2011/08/25
- [Qemu-devel] [PATCH 2/6] target-alpha: Add CLIPPER emulation., Richard Henderson, 2011/08/25
- [Qemu-devel] [PATCH 6/6] target-alpha: Add high-resolution access to wall clock and an alarm., Richard Henderson, 2011/08/25
- Re: [Qemu-devel] [PATCH 6/6] target-alpha: Add high-resolution access to wall clock and an alarm., Peter Maydell, 2011/08/25
- Re: [Qemu-devel] [PATCH 6/6] target-alpha: Add high-resolution access to wall clock and an alarm., Paolo Bonzini, 2011/08/26
- Re: [Qemu-devel] [PATCH 6/6] target-alpha: Add high-resolution access to wall clock and an alarm., Richard Henderson, 2011/08/26
- Re: [Qemu-devel] [PATCH 6/6] target-alpha: Add high-resolution access to wall clock and an alarm., Peter Maydell, 2011/08/26
- Re: [Qemu-devel] [PATCH 6/6] target-alpha: Add high-resolution access to wall clock and an alarm.,
Richard Henderson <=
- Re: [Qemu-devel] [PATCH 6/6] target-alpha: Add high-resolution access to wall clock and an alarm., Richard Henderson, 2011/08/26
- Re: [Qemu-devel] [PATCH 6/6] target-alpha: Add high-resolution access to wall clock and an alarm., Edgar E. Iglesias, 2011/08/27
[Qemu-devel] [PATCH 5/6] target-alpha: Implement HALT IPR., Richard Henderson, 2011/08/25
[Qemu-devel] [PATCH 1/6] target-alpha: Add custom PALcode image for CLIPPER emulation., Richard Henderson, 2011/08/25
Re: [Qemu-devel] [PULL][PATCH 0/6] Alpha system emulation, v9, Richard Henderson, 2011/08/25