xref: /openbmc/linux/arch/sparc/lib/muldi3.S (revision 4cdb71b6)
1f8739b71SThomas Gleixner/* SPDX-License-Identifier: GPL-2.0-or-later */
21da177e4SLinus Torvalds/* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
31da177e4SLinus Torvalds
41da177e4SLinus TorvaldsThis file is part of GNU CC.
51da177e4SLinus Torvalds
6f8739b71SThomas Gleixner */
71da177e4SLinus Torvalds
8*4cdb71b6SMasahiro Yamada#include <linux/export.h>
91da177e4SLinus Torvalds	.text
101da177e4SLinus Torvalds	.align 4
111da177e4SLinus Torvalds	.globl __muldi3
121da177e4SLinus Torvalds__muldi3:
131da177e4SLinus Torvalds	save  %sp, -104, %sp
141da177e4SLinus Torvalds	wr  %g0, %i1, %y
151da177e4SLinus Torvalds	sra  %i3, 0x1f, %g2
161da177e4SLinus Torvalds	and  %i1, %g2, %g2
171da177e4SLinus Torvalds	andcc  %g0, 0, %g1
181da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
191da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
201da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
211da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
221da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
231da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
241da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
251da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
261da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
271da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
281da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
291da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
301da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
311da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
321da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
331da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
341da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
351da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
361da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
371da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
381da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
391da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
401da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
411da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
421da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
431da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
441da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
451da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
461da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
471da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
481da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
491da177e4SLinus Torvalds	mulscc  %g1, %i3, %g1
501da177e4SLinus Torvalds	mulscc  %g1, 0, %g1
511da177e4SLinus Torvalds	add  %g1, %g2, %l2
521da177e4SLinus Torvalds	rd  %y, %o1
531da177e4SLinus Torvalds	mov  %o1, %l3
541da177e4SLinus Torvalds	mov  %i1, %o0
551da177e4SLinus Torvalds	mov  %i2, %o1
561b35a57bSDavid S. Miller	umul %o0, %o1, %o0
571da177e4SLinus Torvalds	mov  %o0, %l0
581da177e4SLinus Torvalds	mov  %i0, %o0
591da177e4SLinus Torvalds	mov  %i3, %o1
601b35a57bSDavid S. Miller	umul %o0, %o1, %o0
611da177e4SLinus Torvalds	add  %l0, %o0, %l0
621da177e4SLinus Torvalds	mov  %l2, %i0
631da177e4SLinus Torvalds	add  %l2, %l0, %i0
641da177e4SLinus Torvalds	ret
651da177e4SLinus Torvalds	restore  %g0, %l3, %o1
66d3867f04SAl ViroEXPORT_SYMBOL(__muldi3)
67