830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco/*
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco * CDDL HEADER START
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco *
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco * The contents of this file are subject to the terms of the
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco * Common Development and Distribution License (the "License").
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco * You may not use this file except in compliance with the License.
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco *
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco * See LICENSE.txt included in this distribution for the specific
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco * language governing permissions and limitations under the License.
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco *
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco * When distributing Covered Code, include this CDDL HEADER in each
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco * If applicable, add the following below this CDDL HEADER, with the
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco * fields enclosed by brackets "[]" replaced with your own identifying
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco * information: Portions Copyright [yyyy] [name of copyright owner]
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco *
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco * CDDL HEADER END
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco */
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco/*
4eda2f9f481542c575493b4d80a9297b6d43a032Knut Anders Hatlen * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco */
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco/* first function definition */
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco ENTRY_NP(foo)
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco set nwindows, %g1
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco ld [%g1], %g1
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco mov %g1, %g2
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco1:
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco save %sp, -WINDOWSIZE, %sp
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco brnz %g2, 1b
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco dec %g2
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco mov %g1, %g2
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco2:
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco restore
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco brnz %g2, 2b
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco dec %g2
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco retl
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco nop
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco SET_SIZE(foo)
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco/* 2nd function definition */
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco ENTRY(bar)
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco rdpr %otherwin, %g1
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco brz %g1, 3f
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco clr %g2
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco1:
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco save %sp, -WINDOWSIZE, %sp
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco rdpr %otherwin, %g1
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco brnz %g1, 1b
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco add %g2, 1, %g2
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco2:
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco sub %g2, 1, %g2 ! restore back to orig window
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco brnz %g2, 2b
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco restore
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco3:
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco retl
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco nop
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco SET_SIZE(bar)
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco/* definitions of the same function twice */
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco ENTRY2(_fce,__fce)
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco cmp %o0, ERESTART
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco be,a 1f
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco mov EINTR, %o0
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco1:
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco save %sp, -SA(MINFRAME), %sp
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco call ___errno
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco nop
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco st %i0, [%o0]
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco restore
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco retl
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco mov -1, %o0
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco SET_SIZE(_fce)
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco SET_SIZE(__fce)
830cfaa577b220f9b2155dbd65e48c9a94a3238aLubos Kosco