public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: "H. Peter Anvin" <hpa@zytor.com>,
	linux-kernel@vger.kernel.org, klibc@zytor.com
Subject: Re: [klibc 04/31] alpha support for klibc
Date: Wed, 28 Jun 2006 08:51:56 -0700	[thread overview]
Message-ID: <44A2A59C.5080903@zytor.com> (raw)
In-Reply-To: <20060628154320.GA18511@twiddle.net>

Richard Henderson wrote:
> On Tue, Jun 27, 2006 at 10:17:04PM -0700, H. Peter Anvin wrote:
>> +# Special CFLAGS for the divide code
>> +DIVCFLAGS = $(KLIBCREQFLAGS) $(KLIBCARCHREQFLAGS) \
>> +	-O3 -fomit-frame-pointer -fcall-saved-1 -fcall-saved-2 \
>> +	-fcall-saved-3 -fcall-saved-4 -fcall-saved-5 -fcall-saved-6 \
>> +	-fcall-saved-7 -fcall-saved-8 -ffixed-15 -fcall-saved-16 \
>> +	-fcall-saved-17 -fcall-saved-18 -fcall-saved-19 -fcall-saved-20 \
>> +	-fcall-saved-21 -fcall-saved-22 -ffixed-23 -fcall-saved-24 \
>> +	-ffixed-25 -ffixed-27
> 
> These routines absolutely cannot be written in C.  The return value
> goes in a different register, which you cannot modify via compiler
> flags.  Please use the hand-coded assembly from linux/arch/alpha/lib/.
> 

Funny, we had this discussion a couple of years ago...

What the above does is generate a calling convention with the right 
number of (various types of) registers.  Then the Makefile swaps the 
registers that the compiler outputs.  It's a bit of a hack, but it's 
reliable and works.  The resulting code isn't as compact at divide.S, 
though.

However, I've tried to keep the code under the BSD license, mostly for 
the benefit of the standalone klibc version (static linkage being the 
norm, after all); so I don't want to crib kernel code unless the owner 
consents to relicensing.  I have cribbed some NetBSD code in some 
places, though.

	-hpa

  reply	other threads:[~2006-06-28 15:52 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-28  5:17 [klibc 00/31] klibc as a historyless patchset (updated and reorganized) H. Peter Anvin
2006-06-28  5:17 ` [klibc 01/31] Add klibc/kinit to MAINTAINERS file H. Peter Anvin
2006-06-28  5:17 ` [klibc 02/31] Main Makefile changes for klibc H. Peter Anvin
2006-06-28  5:17 ` [klibc 03/31] Core klibc code H. Peter Anvin
2006-06-28  5:17 ` [klibc 04/31] alpha support for klibc H. Peter Anvin
2006-06-28 15:43   ` Richard Henderson
2006-06-28 15:51     ` H. Peter Anvin [this message]
2006-06-28  5:17 ` [klibc 05/31] arm " H. Peter Anvin
2006-06-28  5:17 ` [klibc 06/31] cris " H. Peter Anvin
2006-06-28  5:17 ` [klibc 07/31] i386 " H. Peter Anvin
2006-06-28  7:37   ` Jan Engelhardt
2006-06-28 15:33     ` H. Peter Anvin
2006-06-28 16:44       ` H. Peter Anvin
2006-06-29  0:14       ` Roman Zippel
2006-06-29  0:45         ` H. Peter Anvin
2006-06-29 23:43           ` Roman Zippel
2006-06-29 23:54             ` H. Peter Anvin
2006-06-30  0:23               ` Roman Zippel
2006-06-30  1:28                 ` [klibc] " Aaron Griffin
2006-06-30 13:56                   ` Jan Engelhardt
2006-06-28  5:17 ` [klibc 08/31] ia64 " H. Peter Anvin
2006-06-28  5:17 ` [klibc 09/31] m32r " H. Peter Anvin
2006-06-28  5:17 ` [klibc 10/31] m68k " H. Peter Anvin
2006-06-28  5:17 ` [klibc 11/31] mips " H. Peter Anvin
2006-06-28  5:17 ` [klibc 12/31] mips64 " H. Peter Anvin
2006-06-28  5:17 ` [klibc 13/31] parisc " H. Peter Anvin
2006-06-28  5:17 ` [klibc 14/31] ppc " H. Peter Anvin
2006-06-28  5:17 ` [klibc 15/31] ppc64 " H. Peter Anvin
2006-06-28  5:17 ` [klibc 16/31] s390 " H. Peter Anvin
2006-06-28  5:17 ` [klibc 17/31] sh " H. Peter Anvin
2006-06-28  5:17 ` [klibc 18/31] sparc " H. Peter Anvin
2006-06-28  5:17 ` [klibc 19/31] sparc64 " H. Peter Anvin
2006-06-28  5:17 ` [klibc 20/31] x86_64 " H. Peter Anvin
2006-06-28  5:17 ` [klibc 21/31] Simple test suite " H. Peter Anvin
2006-06-28  5:17 ` [klibc 22/31] zlib " H. Peter Anvin
2006-06-28  5:17 ` [klibc 23/31] kinit: replacement for in-kernel do_mount, ipconfig, nfsroot H. Peter Anvin
2006-06-28  5:17 ` [klibc 24/31] klibc basic build infrastructure H. Peter Anvin
2006-06-28  5:17 ` [klibc 25/31] Miscellaneous utilities for klibc H. Peter Anvin
2006-06-28  5:17 ` [klibc 26/31] dash - a small POSIX shell " H. Peter Anvin
2006-06-28  5:17 ` [klibc 27/31] A port of gzip to klibc H. Peter Anvin
2006-06-28  5:17 ` [klibc 28/31] sparc64: transmit arch-specific options to kinit via /arch.cmd H. Peter Anvin
2006-06-28  5:17 ` [klibc 29/31] sparc32: transfer arch-specific options to /arch.cmd H. Peter Anvin
2006-06-28  5:17 ` [klibc 30/31] Remove in-kernel resume-from-disk invocation code H. Peter Anvin
2006-07-05 23:40   ` Nigel Cunningham
2006-07-05 23:58     ` Joshua Hudson
2006-07-06  0:11     ` H. Peter Anvin
2006-07-06  0:37       ` Nigel Cunningham
2006-07-06  0:54         ` H. Peter Anvin
2006-07-06  1:45           ` Nigel Cunningham
2006-07-06  2:18             ` Nigel Cunningham
2006-07-06  3:11               ` H. Peter Anvin
2006-07-06  3:28                 ` Nigel Cunningham
2006-07-06 10:26             ` Pavel Machek
     [not found]             ` <200607061028.k66AS8UB012207@smtp.micromuse.com>
2006-07-06 10:58               ` IBM spam Re: " Pavel Machek
2006-07-06 13:02                 ` Sean Young
2006-07-06  8:31       ` [klibc] " maximilian attems
2006-07-06  8:37         ` H. Peter Anvin
2006-06-28  5:17 ` [klibc 31/31] Remove in-kernel root-mounting code H. Peter Anvin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44A2A59C.5080903@zytor.com \
    --to=hpa@zytor.com \
    --cc=klibc@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox