summaryrefslogtreecommitdiffstats
path: root/cpukit/score
diff options
context:
space:
mode:
authorDaniel Cederman <cederman@gaisler.com>2018-07-12 09:15:55 +0200
committerDaniel Hellstrom <daniel@gaisler.com>2018-08-24 15:51:38 +0200
commit59a0541c5bc0b4346dcfbab76613f770d6e40d10 (patch)
treef7ed3765b80f9b8ef4ac24ae52ead7812fb85a92 /cpukit/score
parentUpdate FreeBSD kernel timespec support (diff)
downloadrtems-59a0541c5bc0b4346dcfbab76613f770d6e40d10.tar.bz2
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.
Diffstat (limited to 'cpukit/score')
-rw-r--r--cpukit/score/cpu/sparc/syscall.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/cpukit/score/cpu/sparc/syscall.S b/cpukit/score/cpu/sparc/syscall.S
index da0ee43889..574cf66176 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: