From owner-p4-projects@FreeBSD.ORG Fri Apr 4 22:13:06 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C5B8E37B404; Fri, 4 Apr 2003 22:13:05 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4E17237B401 for ; Fri, 4 Apr 2003 22:13:05 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CC8C943FAF for ; Fri, 4 Apr 2003 22:13:04 -0800 (PST) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h356D40U019357 for ; Fri, 4 Apr 2003 22:13:04 -0800 (PST) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h356D46d019354 for perforce@freebsd.org; Fri, 4 Apr 2003 22:13:04 -0800 (PST) Date: Fri, 4 Apr 2003 22:13:04 -0800 (PST) Message-Id: <200304050613.h356D46d019354@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 28179 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Apr 2003 06:13:06 -0000 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