Date: Fri, 4 Apr 2003 22:13:04 -0800 (PST) From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 28179 for review Message-ID: <200304050613.h356D46d019354@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=28179 Change 28179 by peter@peter_overcee on 2003/04/04 22:12:22 Dont use the non-existing cmpq imm64,reg64 instruction. Discretely dispose of some other bugs while here. :-) Affected files ... .. //depot/projects/hammer/sys/x86_64/x86_64/support.s#14 edit Differences ... ==== //depot/projects/hammer/sys/x86_64/x86_64/support.s#14 (text+ko) ==== @@ -95,7 +95,8 @@ * looks like there is an off by one error, and of course it caused an off * by one error in several places. */ - cmpq $VM_MAXUSER_ADDRESS,%rax + movq $VM_MAXUSER_ADDRESS,%rcx + cmpq %rcx,%rax ja copyout_fault /* bcopy(%rsi, %rdi, %rbx) */ @@ -147,7 +148,8 @@ movq %rsi,%rdx addq %rcx,%rdx jc copyin_fault - cmpq $VM_MAXUSER_ADDRESS,%rdx + movq $VM_MAXUSER_ADDRESS,%rax + cmpq %rax,%rdx ja copyin_fault movb %cl,%al @@ -183,12 +185,13 @@ movq PCPU(CURPCB),%rcx movq $fusufault,PCB_ONFAULT(%rcx) 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 */ + movq $VM_MAXUSER_ADDRESS-4,%rax + cmpq %rax,%rdx /* verify address is valid */ ja fusufault + movq 16(%rsp),%rax /* old */ + movq 24(%rsp),%rcx /* new */ cmpxchgq %rcx, (%rdx) /* @@ -212,7 +215,8 @@ movq $fusufault,PCB_ONFAULT(%rcx) movq 8(%rsp),%rdx /* from */ - cmpq $VM_MAXUSER_ADDRESS-4,%edx /* verify address is valid */ + movq $VM_MAXUSER_ADDRESS-4,%rax + cmpq %rax,%rdx /* verify address is valid */ ja fusufault # XXX use the 64 extend @@ -243,7 +247,8 @@ movq $fusufault,PCB_ONFAULT(%rcx) movq 8(%rsp),%rdx - cmpq $VM_MAXUSER_ADDRESS-2,%rdx + movq $VM_MAXUSER_ADDRESS-2,%rax + cmpq %rax,%rdx ja fusufault # XXX use the 64 extend @@ -260,7 +265,8 @@ movq $fusufault,PCB_ONFAULT(%rcx) movq 8(%rsp),%rdx - cmpq $VM_MAXUSER_ADDRESS-1,%rdx + movq $VM_MAXUSER_ADDRESS-1,%rax + cmpq %rax,%rdx ja fusufault # XXX use the 64 extend @@ -287,10 +293,11 @@ movq $fusufault,PCB_ONFAULT(%rcx) movq 8(%rsp),%rdx - cmpq $VM_MAXUSER_ADDRESS-4,%rdx /* verify address validity */ + movq $VM_MAXUSER_ADDRESS-4,%rax + cmpq %rax,%rdx /* verify address validity */ ja fusufault - movq 16(%rsp),%rax + movl 16(%rsp),%eax movl %eax,(%rdx) xorq %rax,%rax movq PCPU(CURPCB),%rcx @@ -308,7 +315,8 @@ movq $fusufault,PCB_ONFAULT(%rcx) movq 8(%rsp),%rdx - cmpq $VM_MAXUSER_ADDRESS-2,%rdx /* verify address validity */ + movq $VM_MAXUSER_ADDRESS-2,%rax + cmpq %rax,%rdx /* verify address validity */ ja fusufault movw 16(%rsp),%ax @@ -326,10 +334,11 @@ movq $fusufault,PCB_ONFAULT(%rcx) movq 8(%rsp),%rdx - cmpq $VM_MAXUSER_ADDRESS-1,%rdx /* verify address validity */ + movq $VM_MAXUSER_ADDRESS-1,%rax + cmpq %rax,%rdx /* verify address validity */ ja fusufault - movb 18(%rsp),%al + movb 16(%rsp),%al movb %al,(%rdx) xorq %rax,%rax movq PCPU(CURPCB),%rcx /* restore trashed register */ @@ -384,7 +393,8 @@ jmp cpystrflt_x 3: /* rdx is zero - return ENAMETOOLONG or EFAULT */ - cmpq $VM_MAXUSER_ADDRESS,%rsi + movq $VM_MAXUSER_ADDRESS,%rax + cmpq %rax,%rsi jae cpystrflt 4: movq $ENAMETOOLONG,%rax
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304050613.h356D46d019354>