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:
parent
13d56a9a90
commit
5d5ca6d75e
@ -358,6 +358,9 @@ ENTRY(fuword64)
|
|||||||
movq $0,PCB_ONFAULT(%rcx)
|
movq $0,PCB_ONFAULT(%rcx)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
ENTRY(fuword)
|
||||||
|
jmp fuword64
|
||||||
|
|
||||||
ENTRY(fuword32)
|
ENTRY(fuword32)
|
||||||
movq PCPU(CURPCB),%rcx
|
movq PCPU(CURPCB),%rcx
|
||||||
movq $fusufault,PCB_ONFAULT(%rcx)
|
movq $fusufault,PCB_ONFAULT(%rcx)
|
||||||
@ -366,15 +369,10 @@ ENTRY(fuword32)
|
|||||||
cmpq %rax,%rdi /* verify address is valid */
|
cmpq %rax,%rdi /* verify address is valid */
|
||||||
ja fusufault
|
ja fusufault
|
||||||
|
|
||||||
/* XXX use the 64 extend */
|
|
||||||
xorq %rax, %rax
|
|
||||||
movl (%rdi),%eax
|
movl (%rdi),%eax
|
||||||
movq $0,PCB_ONFAULT(%rcx)
|
movq $0,PCB_ONFAULT(%rcx)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ENTRY(fuword)
|
|
||||||
jmp fuword32
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These two routines are called from the profiling code, potentially
|
* These two routines are called from the profiling code, potentially
|
||||||
* at interrupt time. If they fail, that's okay, good things will
|
* at interrupt time. If they fail, that's okay, good things will
|
||||||
@ -397,8 +395,6 @@ ENTRY(fuword16)
|
|||||||
cmpq %rax,%rdi
|
cmpq %rax,%rdi
|
||||||
ja fusufault
|
ja fusufault
|
||||||
|
|
||||||
/* XXX use the 64 extend */
|
|
||||||
xorq %rax, %rax
|
|
||||||
movzwl (%rdi),%eax
|
movzwl (%rdi),%eax
|
||||||
movq $0,PCB_ONFAULT(%rcx)
|
movq $0,PCB_ONFAULT(%rcx)
|
||||||
ret
|
ret
|
||||||
@ -414,8 +410,6 @@ ENTRY(fubyte)
|
|||||||
cmpq %rax,%rdi
|
cmpq %rax,%rdi
|
||||||
ja fusufault
|
ja fusufault
|
||||||
|
|
||||||
/* XXX use the 64 extend */
|
|
||||||
xorq %rax, %rax
|
|
||||||
movzbl (%rdi),%eax
|
movzbl (%rdi),%eax
|
||||||
movq $0,PCB_ONFAULT(%rcx)
|
movq $0,PCB_ONFAULT(%rcx)
|
||||||
ret
|
ret
|
||||||
@ -448,6 +442,9 @@ ENTRY(suword64)
|
|||||||
movq %rax,PCB_ONFAULT(%rcx)
|
movq %rax,PCB_ONFAULT(%rcx)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
ENTRY(suword)
|
||||||
|
jmp suword64
|
||||||
|
|
||||||
ENTRY(suword32)
|
ENTRY(suword32)
|
||||||
movq PCPU(CURPCB),%rcx
|
movq PCPU(CURPCB),%rcx
|
||||||
movq $fusufault,PCB_ONFAULT(%rcx)
|
movq $fusufault,PCB_ONFAULT(%rcx)
|
||||||
@ -462,9 +459,6 @@ ENTRY(suword32)
|
|||||||
movq %rax,PCB_ONFAULT(%rcx)
|
movq %rax,PCB_ONFAULT(%rcx)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ENTRY(suword)
|
|
||||||
jmp suword32
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* suword16 - MP SAFE
|
* suword16 - MP SAFE
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user