printf.s revision 1.6
11.6Smhitch/* $NetBSD: printf.s,v 1.6 2001/03/02 16:43:26 mhitch Exp $ */
21.2Sis
31.2Sis/*-
41.3Sis * Copyright (c) 1996 The NetBSD Foundation, Inc.
51.2Sis * All rights reserved.
61.1Sis *
71.2Sis * This code is derived from software contributed to The NetBSD Foundation
81.2Sis * by Ignatios Souvatzis.
91.1Sis *
101.1Sis * Redistribution and use in source and binary forms, with or without
111.1Sis * modification, are permitted provided that the following conditions
121.1Sis * are met:
131.1Sis * 1. Redistributions of source code must retain the above copyright
141.1Sis *    notice, this list of conditions and the following disclaimer.
151.1Sis * 2. Redistributions in binary form must reproduce the above copyright
161.1Sis *    notice, this list of conditions and the following disclaimer in the
171.1Sis *    documentation and/or other materials provided with the distribution.
181.1Sis * 3. All advertising materials mentioning features or use of this software
191.1Sis *    must display the following acknowledgement:
201.2Sis *        This product includes software developed by the NetBSD
211.2Sis *        Foundation, Inc. and its contributors.
221.2Sis * 4. Neither the name of The NetBSD Foundation nor the names of its
231.2Sis *    contributors may be used to endorse or promote products derived
241.2Sis *    from this software without specific prior written permission.
251.1Sis *
261.2Sis * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
271.2Sis * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
281.2Sis * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
291.2Sis * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
301.2Sis * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
311.2Sis * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
321.2Sis * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
331.2Sis * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
341.2Sis * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
351.2Sis * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
361.2Sis * POSSIBILITY OF SUCH DAMAGE.
371.1Sis */
381.1Sis
391.1Sis/*
401.1Sis * printf calling exec's RawDoFmt
411.1Sis * Beware! You have to explicitly use %ld etc. for 32bit integers!
421.1Sis */
431.4Sis#include <machine/asm.h>
441.1Sis	.text
451.4Sis	.even
461.1SisLputch:
471.6Smhitch	movl	%d0,%sp@-
481.4Sis	bsr	_C_LABEL(putchar)
491.5Sis	addql	#4,%sp
501.1Sis	rts
511.1Sis
521.4SisENTRY_NOPROFILE(printf)
531.5Sis	movml	#0x0032,%sp@-
541.5Sis	lea	%pc@(Lputch:w),%a2
551.5Sis	lea	%sp@(20),%a1
561.5Sis	movl	%sp@(16),%a0
571.5Sis	movl	%pc@(_C_LABEL(SysBase):w),%a6
581.5Sis	jsr	%a6@(-0x20a)
591.5Sis	movml	%sp@+, #0x4c00
601.1Sis	rts
611.1Sis#if 0
621.1SisLstorech:
631.5Sis	movb	%d0, %a3@+
641.1Sis	rts
651.1Sis
661.4SisENTRY_NOPROFILE(sprintf)
671.5Sis	movml	#0x0032,%sp@-
681.5Sis	movl	%sp@(16),%a3
691.5Sis	lea	%pc@(Lstorech:w),%a2
701.5Sis	lea	%sp@(24),%a1
711.5Sis	movl	%sp@(20),%a0
721.5Sis	movl	%pc@(_C_LABEL(SysBase):w),%a6
731.5Sis	jsr	%a6@(-0x20a)
741.5Sis	movml	%sp@+, #0x4c00
751.1Sis	rts
761.1Sis#endif
77