From bd52caa0358ffec551bc1fab53f5a06a99b1e6e3 Mon Sep 17 00:00:00 2001 From: pk Date: Wed, 19 Apr 1995 12:49:27 +0000 Subject: [PATCH] probeset() was trashing its arguments; fix from Chuck Cranor. --- sys/arch/sparc/sparc/locore.s | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/arch/sparc/sparc/locore.s b/sys/arch/sparc/sparc/locore.s index 4ae511a2e918..eeacdc73ec7c 100644 --- a/sys/arch/sparc/sparc/locore.s +++ b/sys/arch/sparc/sparc/locore.s @@ -3838,14 +3838,14 @@ ENTRY(probeget) */ ENTRY(probeset) ! %o0 = addr, %o1 = (1,2,4), %o2 = val - set KERNBASE, %o2 - cmp %o0, %o2 ! if addr < KERNBASE + set KERNBASE, %o3 + cmp %o0, %o3 ! if addr < KERNBASE blu Lfsbadaddr ! go return error EMPTY - sethi %hi(_cpcb), %o2 - ld [%o2 + %lo(_cpcb)], %o2 ! cpcb->pcb_onfault = Lfserr; + sethi %hi(_cpcb), %o3 + ld [%o3 + %lo(_cpcb)], %o3 ! cpcb->pcb_onfault = Lfserr; set Lfserr, %o5 - st %o5, [%o2 + PCB_ONFAULT] + st %o5, [%o3 + PCB_ONFAULT] btst 1, %o1 bnz,a 0f ! if (len & 1) stb %o2, [%o0] ! *(char *)addr = value; @@ -3857,7 +3857,7 @@ ENTRY(probeset) st %o2, [%o0] ! *(int *)addr = value; 0: clr %o0 ! made it, clear onfault and return 0 retl - st %g0, [%o2 + PCB_ONFAULT] + st %g0, [%o3 + PCB_ONFAULT] /* * int xldcontrolb(caddr_t, pcb)