From owner-p4-projects@FreeBSD.ORG Fri Apr 25 19:04:00 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5B7D137B404; Fri, 25 Apr 2003 19:03:59 -0700 (PDT) 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 D837937B401 for ; Fri, 25 Apr 2003 19:03:58 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 655E143F75 for ; Fri, 25 Apr 2003 19:03:58 -0700 (PDT) (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 h3Q23w0U048706 for ; Fri, 25 Apr 2003 19:03:58 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h3Q23v2i048696 for perforce@freebsd.org; Fri, 25 Apr 2003 19:03:57 -0700 (PDT) Date: Fri, 25 Apr 2003 19:03:57 -0700 (PDT) Message-Id: <200304260203.h3Q23v2i048696@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 29759 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, 26 Apr 2003 02:04:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=29759 Change 29759 by peter@peter_daintree on 2003/04/25 19:03:43 update for PIC. Oh my, that's a lot nicer with pc-relative modes. Affected files ... .. //depot/projects/hammer/lib/libc/x86_64/sys/brk.S#4 edit .. //depot/projects/hammer/lib/libc/x86_64/sys/ptrace.S#3 edit .. //depot/projects/hammer/lib/libc/x86_64/sys/sbrk.S#4 edit .. //depot/projects/hammer/lib/libc/x86_64/sys/setlogin.S#3 edit Differences ... ==== //depot/projects/hammer/lib/libc/x86_64/sys/brk.S#4 (text+ko) ==== @@ -49,41 +49,19 @@ jmp ok ENTRY(brk) -#ifdef PIC - movl 4(%esp),%eax - movl PIC_GOT(HIDENAME(curbrk)),%edx # set up GOT addressing - movl PIC_GOT(HIDENAME(minbrk)),%ecx # - cmpl %eax,(%ecx) - jbe ok - movl (%ecx),%eax - movl %eax,4(%esp) -ok: - mov $SYS_break,%eax - KERNCALL - jb err - movl 4(%esp),%eax - movl %eax,(%edx) - movl $0,%eax - ret -err: - jmp PIC_PLT(HIDENAME(cerror)) - -#else - pushq %rdi movq %rdi,%rax - cmpq %rax,HIDENAME(minbrk) + cmpq %rax,PIC_GOT(HIDENAME(minbrk)) jbe ok - movq HIDENAME(minbrk),%rdi + movq PIC_GOT(HIDENAME(minbrk)),%rdi ok: movq $SYS_break,%rax KERNCALL jb err movq 0(%rsp),%rax - movq %rax,HIDENAME(curbrk) + movq %rax,PIC_GOT(HIDENAME(curbrk)) movq $0,%rax popq %rdi ret err: - jmp HIDENAME(cerror) -#endif + jmp PIC_PLT(HIDENAME(cerror)) ==== //depot/projects/hammer/lib/libc/x86_64/sys/ptrace.S#3 (text+ko) ==== @@ -44,12 +44,7 @@ ENTRY(ptrace) xorl %eax,%eax -#ifdef PIC - movl PIC_GOT(CNAME(errno)),%edx - movl %eax,(%edx) -#else - movl %eax,CNAME(errno) -#endif + movl %eax,PIC_GOT(CNAME(errno)) mov $SYS_ptrace,%eax KERNCALL jb err ==== //depot/projects/hammer/lib/libc/x86_64/sys/sbrk.S#4 (text+ko) ==== @@ -52,42 +52,21 @@ .text ENTRY(sbrk) -#ifdef PIC - movl 4(%esp),%ecx - movl PIC_GOT(HIDENAME(curbrk)),%edx - movl (%edx),%eax - testl %ecx,%ecx - jz back - addl %eax,4(%esp) - mov $SYS_break,%eax - KERNCALL - jb err - movl PIC_GOT(HIDENAME(curbrk)),%edx - movl (%edx),%eax - addl %ecx,(%edx) -back: - ret -err: - jmp PIC_PLT(HIDENAME(cerror)) - -#else /* !PIC */ - pushq %rdi movq %rdi,%rcx - movq HIDENAME(curbrk),%rax + movq PIC_GOT(HIDENAME(curbrk)),%rax testq %rcx,%rcx jz back addq %rax,%rdi mov $SYS_break,%eax KERNCALL jb err - movq HIDENAME(curbrk),%rax + movq PIC_GOT(HIDENAME(curbrk)),%rax movq 0(%rsp), %rcx - addq %rcx,HIDENAME(curbrk) + addq %rcx,PIC_GOT(HIDENAME(curbrk)) back: addq $8, %rsp ret err: addq $8, %rsp - jmp HIDENAME(cerror) -#endif /* PIC */ + jmp PIC_PLT(HIDENAME(cerror)) ==== //depot/projects/hammer/lib/libc/x86_64/sys/setlogin.S#3 (text+ko) ==== @@ -45,12 +45,5 @@ .globl CNAME(_logname_valid) /* in _getlogin() */ SYSCALL(setlogin) -#ifdef PIC - pushl %eax - movl PIC_GOT(CNAME(_logname_valid)),%eax - movl $0,(%eax) - popl %eax -#else - movl $0,CNAME(_logname_valid) -#endif + movl $0,PIC_GOT(CNAME(_logname_valid)) ret /* setlogin(name) */