summaryrefslogtreecommitdiffstats
path: root/arch/mips/include/asm/pbl_macros.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/include/asm/pbl_macros.h')
-rw-r--r--arch/mips/include/asm/pbl_macros.h14
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