From owner-svn-src-user@FreeBSD.ORG Tue Mar 16 01:52:04 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0F48C106566B; Tue, 16 Mar 2010 01:52:04 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F1FC38FC12; Tue, 16 Mar 2010 01:52:03 +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 o2G1q36D039624; Tue, 16 Mar 2010 01:52:03 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2G1q3Mh039622; Tue, 16 Mar 2010 01:52:03 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201003160152.o2G1q3Mh039622@svn.freebsd.org> From: Juli Mallett Date: Tue, 16 Mar 2010 01:52:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r205202 - user/jmallett/octeon/lib/libc/mips/sys X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Mar 2010 01:52:04 -0000 Author: jmallett Date: Tue Mar 16 01:52:03 2010 New Revision: 205202 URL: http://svn.freebsd.org/changeset/base/205202 Log: Properly save and restore the GP on the stack in __cerror, rather than using PIC_PROLOGUE which simply saves and restores it to a temporary register, as is sufficient for syscalls but not for function calls. Submitted by: C. Jayachandran (original version) Modified: user/jmallett/octeon/lib/libc/mips/sys/cerror.S Modified: user/jmallett/octeon/lib/libc/mips/sys/cerror.S ============================================================================== --- user/jmallett/octeon/lib/libc/mips/sys/cerror.S Tue Mar 16 01:48:40 2010 (r205201) +++ user/jmallett/octeon/lib/libc/mips/sys/cerror.S Tue Mar 16 01:52:03 2010 (r205202) @@ -47,21 +47,26 @@ __FBSDID("$FreeBSD$"); .globl _C_LABEL(__error) NESTED_NOPROFILE(__cerror, CALLFRAME_SIZ, ra) .mask 0x80000000, (CALLFRAME_RA - CALLFRAME_SIZ) - PIC_PROLOGUE(__cerror) + SETUP_GP PTR_SUBU sp, sp, CALLFRAME_SIZ - PTR_S ra, CALLFRAME_RA(sp) - INT_S v0, CALLFRAME_S0(sp) # save errno value - + SETUP_GP64(CALLFRAME_GP, __cerror) SAVE_GP(CALLFRAME_GP) + PTR_S ra, CALLFRAME_RA(sp) + REG_S v0, CALLFRAME_S0(sp) # save errno value + PTR_LA t9, _C_LABEL(__error) # locate address of errno jalr t9 - INT_L t0, CALLFRAME_S0(sp) + REG_L t0, CALLFRAME_S0(sp) PTR_L ra, CALLFRAME_RA(sp) INT_S t0, 0(v0) # update errno value + + RESTORE_GP64 PTR_ADDU sp, sp, CALLFRAME_SIZ + li v0, -1 li v1, -1 - PIC_RETURN() + + j ra END(__cerror)