diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-02-02 20:40:17 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-02-02 20:40:17 +0000 |
commit | 6bae70713cb2f87be60ef4f83105c2c928d8612e (patch) | |
tree | 801ea614b6098f6fc1b87f2b8bc594eabb3985b2 /hw/slavio_intctl.c | |
parent | 90f11f95fe41c1b0ec3c70f11f93efeec8a34611 (diff) | |
download | hqemu-6bae70713cb2f87be60ef4f83105c2c928d8612e.zip hqemu-6bae70713cb2f87be60ef4f83105c2c928d8612e.tar.gz |
sparc fix (Blue Swirl)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1262 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'hw/slavio_intctl.c')
-rw-r--r-- | hw/slavio_intctl.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/hw/slavio_intctl.c b/hw/slavio_intctl.c index 7454672..352ae1f 100644 --- a/hw/slavio_intctl.c +++ b/hw/slavio_intctl.c @@ -113,7 +113,7 @@ static uint32_t slavio_intctlm_mem_readl(void *opaque, target_phys_addr_t addr) saddr = (addr & INTCTLM_MAXADDR) >> 2; switch (saddr) { case 0: - return s->intregm_pending; + return s->intregm_pending & 0x7fffffff; case 1: return s->intregm_disabled; case 4: @@ -132,12 +132,12 @@ static void slavio_intctlm_mem_writel(void *opaque, target_phys_addr_t addr, uin saddr = (addr & INTCTLM_MAXADDR) >> 2; switch (saddr) { case 2: // clear (enable) - // Force unused bits - val |= 0x7fb2007f; + // Force clear unused bits + val &= ~0x7fb2007f; s->intregm_disabled &= ~val; break; case 3: // set (disable, clear pending) - // Force unused bits + // Force clear unused bits val &= ~0x7fb2007f; s->intregm_disabled |= val; s->intregm_pending &= ~val; @@ -269,7 +269,7 @@ static void slavio_intctl_reset(void *opaque) for (i = 0; i < MAX_CPUS; i++) { s->intreg_pending[i] = 0; } - s->intregm_disabled = 0xffffffff; + s->intregm_disabled = ~0xffb2007f; s->intregm_pending = 0; s->target_cpu = 0; } |