PERFORCE change 28178 for review
Peter Wemm
peter at FreeBSD.org
Fri Apr 4 21:57:47 PST 2003
http://perforce.freebsd.org/chv.cgi?CH=28178
Change 28178 by peter at peter_overcee on 2003/04/04 21:57:04
get this to assemble - except there is no 64 bit immediate compare. GRR.
Affected files ...
.. //depot/projects/hammer/sys/x86_64/x86_64/support.s#13 edit
Differences ...
==== //depot/projects/hammer/sys/x86_64/x86_64/support.s#13 (text+ko) ====
@@ -182,9 +182,9 @@
ENTRY(casuptr)
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
- movq 8(%esp),%rdx /* dst */
- movq 16(%esp),%rax /* old */
- movq 24(%esp),%rcx /* new */
+ movq 8(%rsp),%rdx /* dst */
+ movq 16(%rsp),%rax /* old */
+ movq 24(%rsp),%rcx /* new */
cmpq $VM_MAXUSER_ADDRESS-4,%rdx /* verify address is valid */
ja fusufault
@@ -210,7 +210,7 @@
ENTRY(fuword)
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
- movq 8(%rsp),%edx /* from */
+ movq 8(%rsp),%rdx /* from */
cmpq $VM_MAXUSER_ADDRESS-4,%edx /* verify address is valid */
ja fusufault
@@ -258,7 +258,7 @@
ENTRY(fubyte)
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
- movq 8(%rsp),%edx
+ movq 8(%rsp),%rdx
cmpq $VM_MAXUSER_ADDRESS-1,%rdx
ja fusufault
@@ -266,7 +266,7 @@
# XXX use the 64 extend
xorq %rax, %rax
movzbl (%rdx),%eax
- movl $0,PCB_ONFAULT(%rcx)
+ movq $0,PCB_ONFAULT(%rcx)
ret
ALIGN_TEXT
@@ -285,12 +285,12 @@
ENTRY(suword)
movq PCPU(CURPCB),%rcx
movq $fusufault,PCB_ONFAULT(%rcx)
- movq 8(%rsp),%edx
+ movq 8(%rsp),%rdx
cmpq $VM_MAXUSER_ADDRESS-4,%rdx /* verify address validity */
ja fusufault
- movl 16(%rsp),%rax
+ movq 16(%rsp),%rax
movl %eax,(%rdx)
xorq %rax,%rax
movq PCPU(CURPCB),%rcx
@@ -345,32 +345,32 @@
* return the actual length in *lencopied.
*/
ENTRY(copyinstr)
- pushl %esi
- pushl %edi
- movl PCPU(CURPCB),%ecx
- movl $cpystrflt,PCB_ONFAULT(%ecx)
+ pushq %rsi
+ pushq %rdi
+ movq PCPU(CURPCB),%rcx
+ movq $cpystrflt,PCB_ONFAULT(%rcx)
- movl 12(%esp),%esi /* %esi = from */
- movl 16(%esp),%edi /* %edi = to */
- movl 20(%esp),%edx /* %edx = maxlen */
+ movq 24(%rsp),%rsi /* %esi = from */
+ movq 32(%rsp),%rdi /* %edi = to */
+ movq 40(%rsp),%rdx /* %edx = maxlen */
- movl $VM_MAXUSER_ADDRESS,%eax
+ movq $VM_MAXUSER_ADDRESS,%rax
/* make sure 'from' is within bounds */
- subl %esi,%eax
+ subq %rsi,%rax
jbe cpystrflt
/* restrict maxlen to <= VM_MAXUSER_ADDRESS-from */
- cmpl %edx,%eax
+ cmpq %rdx,%rax
jae 1f
- movl %eax,%edx
- movl %eax,20(%esp)
+ movq %rax,%rdx
+ movq %rax,40(%rsp)
1:
- incl %edx
+ incq %rdx
cld
2:
- decl %edx
+ decq %rdx
jz 3f
lodsb
@@ -379,33 +379,33 @@
jnz 2b
/* Success -- 0 byte reached */
- decl %edx
- xorl %eax,%eax
+ decq %rdx
+ xorq %rax,%rax
jmp cpystrflt_x
3:
- /* edx is zero - return ENAMETOOLONG or EFAULT */
- cmpl $VM_MAXUSER_ADDRESS,%esi
+ /* rdx is zero - return ENAMETOOLONG or EFAULT */
+ cmpq $VM_MAXUSER_ADDRESS,%rsi
jae cpystrflt
4:
- movl $ENAMETOOLONG,%eax
+ movq $ENAMETOOLONG,%rax
jmp cpystrflt_x
cpystrflt:
- movl $EFAULT,%eax
+ movq $EFAULT,%rax
cpystrflt_x:
/* set *lencopied and return %eax */
- movl PCPU(CURPCB),%ecx
- movl $0,PCB_ONFAULT(%ecx)
- movl 20(%esp),%ecx
- subl %edx,%ecx
- movl 24(%esp),%edx
- testl %edx,%edx
+ movq PCPU(CURPCB),%rcx
+ movq $0,PCB_ONFAULT(%rcx)
+ movq 40(%rsp),%rcx
+ subq %rdx,%rcx
+ movq 48(%rsp),%rdx
+ testq %rdx,%rdx
jz 1f
- movl %ecx,(%edx)
+ movq %rcx,(%rdx)
1:
- popl %edi
- popl %esi
+ popq %rdi
+ popq %rsi
ret
@@ -413,16 +413,16 @@
* copystr(from, to, maxlen, int *lencopied) - MP SAFE
*/
ENTRY(copystr)
- pushl %esi
- pushl %edi
+ pushq %rsi
+ pushq %rdi
- movl 12(%esp),%esi /* %esi = from */
- movl 16(%esp),%edi /* %edi = to */
- movl 20(%esp),%edx /* %edx = maxlen */
- incl %edx
+ movq 24(%rsp),%rsi /* %esi = from */
+ movq 32(%rsp),%rdi /* %edi = to */
+ movq 40(%rsp),%rdx /* %edx = maxlen */
+ incq %rdx
cld
1:
- decl %edx
+ decq %rdx
jz 4f
lodsb
stosb
@@ -430,24 +430,24 @@
jnz 1b
/* Success -- 0 byte reached */
- decl %edx
- xorl %eax,%eax
+ decq %rdx
+ xorq %rax,%rax
jmp 6f
4:
- /* edx is zero -- return ENAMETOOLONG */
- movl $ENAMETOOLONG,%eax
+ /* rdx is zero -- return ENAMETOOLONG */
+ movq $ENAMETOOLONG,%rax
6:
- /* set *lencopied and return %eax */
- movl 20(%esp),%ecx
- subl %edx,%ecx
- movl 24(%esp),%edx
- testl %edx,%edx
+ /* set *lencopied and return %rax */
+ movq 40(%rsp),%rcx
+ subq %rdx,%rcx
+ movq 48(%rsp),%rdx
+ testq %rdx,%rdx
jz 7f
- movl %ecx,(%edx)
+ movq %rcx,(%rdx)
7:
- popl %edi
- popl %esi
+ popq %rdi
+ popq %rsi
ret
/*
More information about the p4-projects
mailing list