Commit 6bae70713cb2f87be60ef4f83105c2c928d8612e

Authored by bellard
1 parent 90f11f95

sparc fix (Blue Swirl)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1262 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 5 additions and 5 deletions
hw/slavio_intctl.c
... ... @@ -113,7 +113,7 @@ static uint32_t slavio_intctlm_mem_readl(void *opaque, target_phys_addr_t addr)
113 113 saddr = (addr & INTCTLM_MAXADDR) >> 2;
114 114 switch (saddr) {
115 115 case 0:
116   - return s->intregm_pending;
  116 + return s->intregm_pending & 0x7fffffff;
117 117 case 1:
118 118 return s->intregm_disabled;
119 119 case 4:
... ... @@ -132,12 +132,12 @@ static void slavio_intctlm_mem_writel(void *opaque, target_phys_addr_t addr, uin
132 132 saddr = (addr & INTCTLM_MAXADDR) >> 2;
133 133 switch (saddr) {
134 134 case 2: // clear (enable)
135   - // Force unused bits
136   - val |= 0x7fb2007f;
  135 + // Force clear unused bits
  136 + val &= ~0x7fb2007f;
137 137 s->intregm_disabled &= ~val;
138 138 break;
139 139 case 3: // set (disable, clear pending)
140   - // Force unused bits
  140 + // Force clear unused bits
141 141 val &= ~0x7fb2007f;
142 142 s->intregm_disabled |= val;
143 143 s->intregm_pending &= ~val;
... ... @@ -269,7 +269,7 @@ static void slavio_intctl_reset(void *opaque)
269 269 for (i = 0; i < MAX_CPUS; i++) {
270 270 s->intreg_pending[i] = 0;
271 271 }
272   - s->intregm_disabled = 0xffffffff;
  272 + s->intregm_disabled = ~0xffb2007f;
273 273 s->intregm_pending = 0;
274 274 s->target_cpu = 0;
275 275 }
... ...