From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19223 invoked by alias); 28 Jun 2013 18:45:31 -0000 Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org Received: (qmail 19210 invoked by uid 89); 28 Jun 2013 18:45:30 -0000 X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,TW_XF autolearn=ham version=3.3.1 Received: from mail-out.m-online.net (HELO mail-out.m-online.net) (212.18.0.10) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Fri, 28 Jun 2013 18:45:28 +0000 Received: from frontend1.mail.m-online.net (frontend1.mail.intern.m-online.net [192.168.8.180]) by mail-out.m-online.net (Postfix) with ESMTP id 3bhn3T36wFz3hhZC; Fri, 28 Jun 2013 20:45:24 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.68]) by mail.m-online.net (Postfix) with ESMTP id 3bhn3S0DsvzbbfM; Fri, 28 Jun 2013 20:45:24 +0200 (CEST) Received: from mail.mnet-online.de ([192.168.8.180]) by localhost (dynscan1.mail.m-online.net [192.168.6.68]) (amavisd-new, port 10024) with ESMTP id CeBlmv_vqH6f; Fri, 28 Jun 2013 20:45:22 +0200 (CEST) X-Auth-Info: 9FjCCbdiEmGMhJcYkUZIVXkR1VvvmSihxs+9U3TylQQ= Received: from igel.home (ppp-88-217-124-224.dynamic.mnet-online.de [88.217.124.224]) by mail.mnet-online.de (Postfix) with ESMTPA; Fri, 28 Jun 2013 20:45:22 +0200 (CEST) Received: by igel.home (Postfix, from userid 1000) id 1393AE4BAA; Fri, 28 Jun 2013 20:45:21 +0200 (CEST) From: Andreas Schwab To: "Joseph S. Myers" Cc: Subject: Re: Miscellaneous ColdFire patches References: X-Yow: Where's th' DAFFY DUCK EXHIBIT?? Date: Fri, 28 Jun 2013 18:45:00 -0000 In-Reply-To: (Joseph S. Myers's message of "Fri, 28 Jun 2013 16:00:25 +0000") Message-ID: <87obaqgjlq.fsf@igel.home> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2013-06/txt/msg00065.txt.bz2 "Joseph S. Myers" writes: > 2013-06-28 Joseph Myers > > * sysdeps/unix/sysv/linux/m68k/kernel-features.h [__mcoldfire__] > (MMAP2_PAGE_SHIFT): Define to -1. kernel-features.h is the wrong place to define this (mmap64.c should actually no longer include it). You should create a mmap64.c that defines MMAP2_PAGE_SHIFT and then falls through to the real implementation. Also, this is an issue for sun3 as well, so it needs to be defined for all m68k variants. Finally, you need to fix sysdeps/unix/sysv/linux/mmap64.c so that it doesn't shift by -1. (Looks like cris and microblaze have the same bug.) > 2013-06-28 Nathan Sidwell > > * sysdeps/m68k/fpu_control.h [__mcoldfire__ && !__mcffpu__] > (_FPU_RESERVED): Provide alternative definition. > [__mcoldfire__ && !__mcffpu__] (_FPU_DEFAULT): Likewise. > [__mcoldfire__ && !__mcffpu__] (_FPU_GETCW): Likewise. > [__mcoldfire__ && !__mcffpu__] (_FPU_SETCW): Likewise. > [!(__mcoldfire__ && !__mcffpu__)]: Make existing macro definitions > conditional. > > diff --git a/ports/sysdeps/m68k/fpu_control.h b/ports/sysdeps/m68k/fpu_control.h > index c37fcf4..848b5ba 100644 > --- a/ports/sysdeps/m68k/fpu_control.h > +++ b/ports/sysdeps/m68k/fpu_control.h > @@ -53,6 +53,15 @@ > > #include > > +#if defined (__mcoldfire__) && !defined (__mcffpu__) > + > +#define _FPU_RESERVED 0xffffffff > +#define _FPU_DEFAULT 0x00000000 > +#define _FPU_GETCW(cw) ((cw) = 0) > +#define _FPU_SETCW(cw) ((void) (cw)) > + > +#else > + > /* masking of interrupts */ > #define _FPU_MASK_BSUN 0x8000 > #define _FPU_MASK_SNAN 0x4000 > @@ -95,12 +104,13 @@ > that __setfpucw works. This bit will be ignored. */ > #define _FPU_IEEE 0x00000001 > > -/* Type of the control word. */ > -typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__))); > - > /* Macros for accessing the hardware control word. */ > #define _FPU_GETCW(cw) __asm__ ("fmove%.l %!, %0" : "=dm" (cw)) > #define _FPU_SETCW(cw) __asm__ volatile ("fmove%.l %0, %!" : : "dm" (cw)) > +#endif > + > +/* Type of the control word. */ > +typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__))); > > /* Default control word set at startup. */ > extern fpu_control_t __fpu_control; Please fix up the preprocessor indentation, possibly in a separate commit. > 2013-06-28 Nathan Sidwell > Joseph Myers > > * sysdeps/m68k/dl-trampoline.S (_dl_runtime_profile) > [__mcoldfire__ && !__mcffpu]: Do not save floating-point > registers. > > diff --git a/ports/sysdeps/m68k/dl-trampoline.S b/ports/sysdeps/m68k/dl-trampoline.S > index 5aeafc7..16f20dc 100644 > --- a/ports/sysdeps/m68k/dl-trampoline.S > +++ b/ports/sysdeps/m68k/dl-trampoline.S > @@ -174,12 +174,16 @@ _dl_runtime_profile: > +4 %a1 > %sp %a0 > */ > -#ifdef __mcoldfire__ > +#if !defined (__mcoldfire__) > + fmove.x %fp0, -(%sp) > + cfi_adjust_cfa_offset (12) > +#elif defined (__mcffpu__) > fmove.d %fp0, -(%sp) > cfi_adjust_cfa_offset (8) > #else > - fmove.x %fp0, -(%sp) > - cfi_adjust_cfa_offset (12) > + clr.l -(%sp) > + clr.l -(%sp) > + cfi_adjust_cfa_offset (8) There should be no need to even allocate the stack space. > #endif > move.l %a0, -(%sp) > cfi_adjust_cfa_offset (4) > @@ -213,15 +217,20 @@ _dl_runtime_profile: > cfi_adjust_cfa_offset (-4) > move.l (%sp)+, %a0 > cfi_adjust_cfa_offset (-4) > -#ifdef __mcoldfire__ > - fmove.d (%sp)+, %fp0 > - cfi_adjust_cfa_offset (-8) > -#else > +#if !defined (__mcoldfire__) > fmove.x (%sp)+, %fp0 > cfi_adjust_cfa_offset (-12) > -#endif > lea 20(%sp), %sp > cfi_adjust_cfa_offset (-20) > +#elif defined (__mcffpu__) > + fmove.l (%sp)+, %fp0 fmove.d Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."