[rtems commit] sparc: Restore npc when returning from the syscall_lazy_fp_switch trap

Daniel Hellstrom danielh at rtems.org
Fri Aug 24 13:53:12 UTC 2018


Module:    rtems
Branch:    master
Commit:    59a0541c5bc0b4346dcfbab76613f770d6e40d10
Changeset: http://git.rtems.org/rtems/commit/?id=59a0541c5bc0b4346dcfbab76613f770d6e40d10

Author:    Daniel Cederman <cederman at gaisler.com>
Date:      Thu Jul 12 09:15:55 2018 +0200

sparc: Restore npc when returning from the syscall_lazy_fp_switch trap

If the floating point trap occurred in a delay slot it is not certain
that npc will be equal to pc + 4.

---

 cpukit/score/cpu/sparc/syscall.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cpukit/score/cpu/sparc/syscall.S b/cpukit/score/cpu/sparc/syscall.S
index da0ee43..574cf66 100644
--- a/cpukit/score/cpu/sparc/syscall.S
+++ b/cpukit/score/cpu/sparc/syscall.S
@@ -245,7 +245,7 @@ SYM(syscall_lazy_fp_switch):
 
 	/* Now, retry the floating point instruction with PSR[EF] == 1 */
 	jmp	%l1
-	 rett	%l1 + 4
+	 rett	%l2
 
 .Lillegal_use_of_floating_point_unit:
 




More information about the vc mailing list