Fix bug in usermode_donothing() exposed by using this from the Internet module.
In the 26 bit case the TEQP pc,#0 switches to user mode and enables interrupts (see section 8.2.1 of ARM ARM revision E), however the 32 bit case only switched to user mode. Since interrupts were not enabled, no callbacks got collected, and you just sit in a tight loop. Since a precondition of collecting callbacks is that interrupts are enabled it is safe to reenable them since the caller must have expected this to happen. Since none of the SWIs in question corrupt R12, we no longer stack it either. Version 0.13. Tagged as 'AsmUtils-0_13'
Showing with 20 additions and 22 deletions