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