1*2bcacabbSAdam Hornacek/* 2*2bcacabbSAdam Hornacek * CDDL HEADER START 3*2bcacabbSAdam Hornacek * 4*2bcacabbSAdam Hornacek * The contents of this file are subject to the terms of the 5*2bcacabbSAdam Hornacek * Common Development and Distribution License (the "License"). 6*2bcacabbSAdam Hornacek * You may not use this file except in compliance with the License. 7*2bcacabbSAdam Hornacek * 8*2bcacabbSAdam Hornacek * See LICENSE.txt included in this distribution for the specific 9*2bcacabbSAdam Hornacek * language governing permissions and limitations under the License. 10*2bcacabbSAdam Hornacek * 11*2bcacabbSAdam Hornacek * When distributing Covered Code, include this CDDL HEADER in each 12*2bcacabbSAdam Hornacek * file and include the License file at LICENSE.txt. 13*2bcacabbSAdam Hornacek * If applicable, add the following below this CDDL HEADER, with the 14*2bcacabbSAdam Hornacek * fields enclosed by brackets "[]" replaced with your own identifying 15*2bcacabbSAdam Hornacek * information: Portions Copyright [yyyy] [name of copyright owner] 16*2bcacabbSAdam Hornacek * 17*2bcacabbSAdam Hornacek * CDDL HEADER END 18*2bcacabbSAdam Hornacek */ 19*2bcacabbSAdam Hornacek 20*2bcacabbSAdam Hornacek/* 21*2bcacabbSAdam Hornacek * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved. 22*2bcacabbSAdam Hornacek */ 23*2bcacabbSAdam Hornacek 24*2bcacabbSAdam Hornacek/* first function definition */ 25*2bcacabbSAdam Hornacek 26*2bcacabbSAdam Hornacek ENTRY_NP(foo) 27*2bcacabbSAdam Hornacek set nwindows, %g1 28*2bcacabbSAdam Hornacek ld [%g1], %g1 29*2bcacabbSAdam Hornacek mov %g1, %g2 30*2bcacabbSAdam Hornacek 31*2bcacabbSAdam Hornacek1: 32*2bcacabbSAdam Hornacek save %sp, -WINDOWSIZE, %sp 33*2bcacabbSAdam Hornacek brnz %g2, 1b 34*2bcacabbSAdam Hornacek dec %g2 35*2bcacabbSAdam Hornacek 36*2bcacabbSAdam Hornacek mov %g1, %g2 37*2bcacabbSAdam Hornacek2: 38*2bcacabbSAdam Hornacek restore 39*2bcacabbSAdam Hornacek brnz %g2, 2b 40*2bcacabbSAdam Hornacek dec %g2 41*2bcacabbSAdam Hornacek 42*2bcacabbSAdam Hornacek retl 43*2bcacabbSAdam Hornacek nop 44*2bcacabbSAdam Hornacek 45*2bcacabbSAdam Hornacek SET_SIZE(foo) 46*2bcacabbSAdam Hornacek 47*2bcacabbSAdam Hornacek/* 2nd function definition */ 48*2bcacabbSAdam Hornacek 49*2bcacabbSAdam Hornacek ENTRY(bar) 50*2bcacabbSAdam Hornacek rdpr %otherwin, %g1 51*2bcacabbSAdam Hornacek brz %g1, 3f 52*2bcacabbSAdam Hornacek clr %g2 53*2bcacabbSAdam Hornacek1: 54*2bcacabbSAdam Hornacek save %sp, -WINDOWSIZE, %sp 55*2bcacabbSAdam Hornacek rdpr %otherwin, %g1 56*2bcacabbSAdam Hornacek brnz %g1, 1b 57*2bcacabbSAdam Hornacek add %g2, 1, %g2 58*2bcacabbSAdam Hornacek2: 59*2bcacabbSAdam Hornacek sub %g2, 1, %g2 ! restore back to orig window 60*2bcacabbSAdam Hornacek brnz %g2, 2b 61*2bcacabbSAdam Hornacek restore 62*2bcacabbSAdam Hornacek3: 63*2bcacabbSAdam Hornacek retl 64*2bcacabbSAdam Hornacek nop 65*2bcacabbSAdam Hornacek SET_SIZE(bar) 66*2bcacabbSAdam Hornacek 67*2bcacabbSAdam Hornacek/* definitions of the same function twice */ 68*2bcacabbSAdam Hornacek 69*2bcacabbSAdam Hornacek ENTRY2(_fce,__fce) 70*2bcacabbSAdam Hornacek cmp %o0, ERESTART 71*2bcacabbSAdam Hornacek be,a 1f 72*2bcacabbSAdam Hornacek mov EINTR, %o0 73*2bcacabbSAdam Hornacek1: 74*2bcacabbSAdam Hornacek save %sp, -SA(MINFRAME), %sp 75*2bcacabbSAdam Hornacek call ___errno 76*2bcacabbSAdam Hornacek nop 77*2bcacabbSAdam Hornacek st %i0, [%o0] 78*2bcacabbSAdam Hornacek restore 79*2bcacabbSAdam Hornacek retl 80*2bcacabbSAdam Hornacek mov -1, %o0 81*2bcacabbSAdam Hornacek 82*2bcacabbSAdam Hornacek SET_SIZE(_fce) 83*2bcacabbSAdam Hornacek SET_SIZE(__fce) 84