diff options
Diffstat (limited to 'arch/mips/include/asm/pbl_macros.h')
-rw-r--r-- | arch/mips/include/asm/pbl_macros.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/arch/mips/include/asm/pbl_macros.h b/arch/mips/include/asm/pbl_macros.h index 681b40a305..dbe3410632 100644 --- a/arch/mips/include/asm/pbl_macros.h +++ b/arch/mips/include/asm/pbl_macros.h @@ -60,6 +60,18 @@ .set pop .endm + .macro pbl_blt addr label tmp + .set push + .set noreorder + move \tmp, ra # preserve ra beforehand + bal 253f + nop +253: + bltu ra, \addr, \label + move ra, \tmp # restore ra + .set pop + .endm + .macro pbl_sleep reg count .set push .set noreorder @@ -145,7 +157,7 @@ copy_loop_exit: .set push .set noreorder mfc0 k0, CP0_STATUS - li k1, ~ST0_IE + li k1, ~(ST0_ERL | ST0_IE) and k0, k1 mtc0 k0, CP0_STATUS .set pop |