Fix some misunderstandings about 64 bit extension.

Fix fuword/suword - they're supposed to be 'long' - ie: point them
at fuword64/suword64 instead of the incorrect 32 bit versions.
This commit is contained in:
Peter Wemm 2003-05-14 03:38:13 +00:00
parent 13d56a9a90
commit 5d5ca6d75e

View File

@ -358,6 +358,9 @@ ENTRY(fuword64)
movq $0,PCB_ONFAULT(%rcx)
ret
ENTRY(fuword)
jmp fuword64
ENTRY(fuword32)
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
@ -366,15 +369,10 @@ ENTRY(fuword32)
cmpq %rax,%rdi /* verify address is valid */
ja fusufault
/* XXX use the 64 extend */
xorq %rax, %rax
movl (%rdi),%eax
movq $0,PCB_ONFAULT(%rcx)
ret
ENTRY(fuword)
jmp fuword32
/*
* These two routines are called from the profiling code, potentially
* at interrupt time. If they fail, that's okay, good things will
@ -397,8 +395,6 @@ ENTRY(fuword16)
cmpq %rax,%rdi
ja fusufault
/* XXX use the 64 extend */
xorq %rax, %rax
movzwl (%rdi),%eax
movq $0,PCB_ONFAULT(%rcx)
ret
@ -414,8 +410,6 @@ ENTRY(fubyte)
cmpq %rax,%rdi
ja fusufault
/* XXX use the 64 extend */
xorq %rax, %rax
movzbl (%rdi),%eax
movq $0,PCB_ONFAULT(%rcx)
ret
@ -448,6 +442,9 @@ ENTRY(suword64)
movq %rax,PCB_ONFAULT(%rcx)
ret
ENTRY(suword)
jmp suword64
ENTRY(suword32)
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
@ -462,9 +459,6 @@ ENTRY(suword32)
movq %rax,PCB_ONFAULT(%rcx)
ret
ENTRY(suword)
jmp suword32
/*
* suword16 - MP SAFE
*/