From owner-svn-src-projects@FreeBSD.ORG Mon Feb 15 03:37:53 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 69FBE106566B; Mon, 15 Feb 2010 03:37:53 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 584F38FC0C; Mon, 15 Feb 2010 03:37:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o1F3broW080177; Mon, 15 Feb 2010 03:37:53 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o1F3bqm4080171; Mon, 15 Feb 2010 03:37:52 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201002150337.o1F3bqm4080171@svn.freebsd.org> From: Nathan Whitehorn Date: Mon, 15 Feb 2010 03:37:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r203910 - projects/ppc64/lib/libc/powerpc64/sys X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Feb 2010 03:37:53 -0000 Author: nwhitehorn Date: Mon Feb 15 03:37:52 2010 New Revision: 203910 URL: http://svn.freebsd.org/changeset/base/203910 Log: Fix invocation of __cerror following earlier API changes and place the old value of LR in the parent's stack frame in ptrace(2) instead of accidentally putting it in the function's own. This gets GDB at least not to crash on a running program, but it still does not work correctly. Modified: projects/ppc64/lib/libc/powerpc64/sys/brk.S projects/ppc64/lib/libc/powerpc64/sys/exect.S projects/ppc64/lib/libc/powerpc64/sys/pipe.S projects/ppc64/lib/libc/powerpc64/sys/ptrace.S projects/ppc64/lib/libc/powerpc64/sys/sbrk.S Modified: projects/ppc64/lib/libc/powerpc64/sys/brk.S ============================================================================== --- projects/ppc64/lib/libc/powerpc64/sys/brk.S Mon Feb 15 03:09:55 2010 (r203909) +++ projects/ppc64/lib/libc/powerpc64/sys/brk.S Mon Feb 15 03:37:52 2010 (r203910) @@ -59,5 +59,12 @@ ENTRY(brk) blr /* return 0 */ 1: - b PIC_PLT(HIDENAME(cerror)) + mflr %r0 + std %r0,16(%r1) + stdu %r1,-48(%r1) + bl PIC_PLT(HIDENAME(cerror)) nop + ld %r1,0(%r1) + ld %r0,16(%r1) + mtlr %r0 + blr Modified: projects/ppc64/lib/libc/powerpc64/sys/exect.S ============================================================================== --- projects/ppc64/lib/libc/powerpc64/sys/exect.S Mon Feb 15 03:09:55 2010 (r203909) +++ projects/ppc64/lib/libc/powerpc64/sys/exect.S Mon Feb 15 03:37:52 2010 (r203910) @@ -36,5 +36,12 @@ ENTRY(exect) bso 1f blr 1: - b PIC_PLT(HIDENAME(cerror)) + mflr %r0 + std %r0,16(%r1) + stdu %r1,-48(%r1) + bl PIC_PLT(HIDENAME(cerror)) nop + ld %r1,0(%r1) + ld %r0,16(%r1) + mtlr %r0 + blr Modified: projects/ppc64/lib/libc/powerpc64/sys/pipe.S ============================================================================== --- projects/ppc64/lib/libc/powerpc64/sys/pipe.S Mon Feb 15 03:09:55 2010 (r203909) +++ projects/ppc64/lib/libc/powerpc64/sys/pipe.S Mon Feb 15 03:37:52 2010 (r203910) @@ -40,5 +40,12 @@ ENTRY(pipe) li %r3,0 blr /* and return 0 */ 1: - b PIC_PLT(HIDENAME(cerror)) + mflr %r0 + std %r0,16(%r1) + stdu %r1,-48(%r1) + bl PIC_PLT(HIDENAME(cerror)) nop + ld %r1,0(%r1) + ld %r0,16(%r1) + mtlr %r0 + blr Modified: projects/ppc64/lib/libc/powerpc64/sys/ptrace.S ============================================================================== --- projects/ppc64/lib/libc/powerpc64/sys/ptrace.S Mon Feb 15 03:09:55 2010 (r203909) +++ projects/ppc64/lib/libc/powerpc64/sys/ptrace.S Mon Feb 15 03:37:52 2010 (r203910) @@ -33,7 +33,7 @@ __FBSDID("$FreeBSD$"); ENTRY(ptrace) mflr %r0 stdu %r1,-68(%r1) - std %r0,16(%r1) + std %r0,84(%r1) stw %r3,48(%r1) stw %r4,52(%r1) std %r5,56(%r1) @@ -47,7 +47,7 @@ ENTRY(ptrace) lwz %r3,48(%r1) lwz %r4,52(%r1) ld %r5,56(%r1) - ld %r0,16(%r1) + ld %r0,84(%r1) lwz %r6,64(%r1) mtlr %r0 ld %r1,0(%r1) @@ -56,5 +56,10 @@ ENTRY(ptrace) bso 1f blr 1: - b PIC_PLT(HIDENAME(cerror)) + stdu %r1,-48(%r1) /* lr already saved */ + bl PIC_PLT(HIDENAME(cerror)) nop + ld %r1,0(%r1) + ld %r0,16(%r1) + mtlr %r0 + blr Modified: projects/ppc64/lib/libc/powerpc64/sys/sbrk.S ============================================================================== --- projects/ppc64/lib/libc/powerpc64/sys/sbrk.S Mon Feb 15 03:09:55 2010 (r203909) +++ projects/ppc64/lib/libc/powerpc64/sys/sbrk.S Mon Feb 15 03:37:52 2010 (r203910) @@ -54,5 +54,12 @@ ENTRY(sbrk) mr %r3,%r6 /* set return value */ blr 2: - b PIC_PLT(HIDENAME(cerror)) + mflr %r0 + std %r0,16(%r1) + stdu %r1,-48(%r1) + bl PIC_PLT(HIDENAME(cerror)) nop + ld %r1,0(%r1) + ld %r0,16(%r1) + mtlr %r0 + blr