From owner-p4-projects@FreeBSD.ORG Fri Apr 4 21:57:47 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8ACF137B404; Fri, 4 Apr 2003 21:57:46 -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 3F06C37B401 for ; Fri, 4 Apr 2003 21:57:46 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D020D43FBF for ; Fri, 4 Apr 2003 21:57:45 -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 h355vj0U017191 for ; Fri, 4 Apr 2003 21:57:45 -0800 (PST) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h355vj2i017188 for perforce@freebsd.org; Fri, 4 Apr 2003 21:57:45 -0800 (PST) Date: Fri, 4 Apr 2003 21:57:45 -0800 (PST) Message-Id: <200304050557.h355vj2i017188@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 28178 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 05:57:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=28178 Change 28178 by peter@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 /*