Commit 6d7e63262c7e47400c37cb6b789b1e2df8d492e4
1 parent
3d830459
switching to Arm mode in do_interrupt() (Paul Brook)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1711 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
3 additions
and
2 deletions
target-arm/helper.c
... | ... | @@ -162,10 +162,11 @@ void do_interrupt(CPUARMState *env) |
162 | 162 | } |
163 | 163 | switch_mode (env, new_mode); |
164 | 164 | env->spsr = cpsr_read(env); |
165 | - /* Switch to the new mode, and clear the thumb bit. */ | |
165 | + /* Switch to the new mode, and switch to Arm mode. */ | |
166 | 166 | /* ??? Thumb interrupt handlers not implemented. */ |
167 | - env->uncached_cpsr = (env->uncached_cpsr & ~(CPSR_M | CPSR_T)) | new_mode; | |
167 | + env->uncached_cpsr = (env->uncached_cpsr & ~CPSR_M) | new_mode; | |
168 | 168 | env->uncached_cpsr |= mask; |
169 | + env->thumb = 0; | |
169 | 170 | env->regs[14] = env->regs[15] + offset; |
170 | 171 | env->regs[15] = addr; |
171 | 172 | env->interrupt_request |= CPU_INTERRUPT_EXITTB; | ... | ... |