1*2be1a816SJohn Birrell/* 2*2be1a816SJohn Birrell * CDDL HEADER START 3*2be1a816SJohn Birrell * 4*2be1a816SJohn Birrell * The contents of this file are subject to the terms of the 5*2be1a816SJohn Birrell * Common Development and Distribution License (the "License"). 6*2be1a816SJohn Birrell * You may not use this file except in compliance with the License. 7*2be1a816SJohn Birrell * 8*2be1a816SJohn Birrell * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*2be1a816SJohn Birrell * or http://www.opensolaris.org/os/licensing. 10*2be1a816SJohn Birrell * See the License for the specific language governing permissions 11*2be1a816SJohn Birrell * and limitations under the License. 12*2be1a816SJohn Birrell * 13*2be1a816SJohn Birrell * When distributing Covered Code, include this CDDL HEADER in each 14*2be1a816SJohn Birrell * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*2be1a816SJohn Birrell * If applicable, add the following below this CDDL HEADER, with the 16*2be1a816SJohn Birrell * fields enclosed by brackets "[]" replaced with your own identifying 17*2be1a816SJohn Birrell * information: Portions Copyright [yyyy] [name of copyright owner] 18*2be1a816SJohn Birrell * 19*2be1a816SJohn Birrell * CDDL HEADER END 20*2be1a816SJohn Birrell */ 21*2be1a816SJohn Birrell 22*2be1a816SJohn Birrell/* 23*2be1a816SJohn Birrell * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 24*2be1a816SJohn Birrell * Use is subject to license terms. 25*2be1a816SJohn Birrell */ 26*2be1a816SJohn Birrell 27*2be1a816SJohn Birrell#pragma ident "%Z%%M% %I% %E% SMI" 28*2be1a816SJohn Birrell 29*2be1a816SJohn Birrell#include <sys/asm_linkage.h> 30*2be1a816SJohn Birrell 31*2be1a816SJohn Birrell DGDEF(__fsr_init_value) 32*2be1a816SJohn Birrell .long 0 33*2be1a816SJohn Birrell 34*2be1a816SJohn Birrell ENTRY(ret1) 35*2be1a816SJohn Birrell ret 36*2be1a816SJohn Birrell SET_SIZE(ret1) 37*2be1a816SJohn Birrell 38*2be1a816SJohn Birrell ENTRY(ret2) 39*2be1a816SJohn Birrell repz 40*2be1a816SJohn Birrell ret 41*2be1a816SJohn Birrell SET_SIZE(ret2) 42*2be1a816SJohn Birrell 43*2be1a816SJohn Birrell ENTRY(ret3) 44*2be1a816SJohn Birrell ret $0 45*2be1a816SJohn Birrell SET_SIZE(ret3) 46*2be1a816SJohn Birrell 47*2be1a816SJohn Birrell ENTRY(ret4) 48*2be1a816SJohn Birrell repz 49*2be1a816SJohn Birrell ret $0 50*2be1a816SJohn Birrell SET_SIZE(ret4) 51*2be1a816SJohn Birrell 52*2be1a816SJohn Birrell ENTRY(ret5) 53*2be1a816SJohn Birrell pushl (%esp) 54*2be1a816SJohn Birrell ret $4 55*2be1a816SJohn Birrell SET_SIZE(ret5) 56*2be1a816SJohn Birrell 57*2be1a816SJohn Birrell ENTRY(ret6) 58*2be1a816SJohn Birrell pushl (%esp) 59*2be1a816SJohn Birrell repz 60*2be1a816SJohn Birrell ret $4 61*2be1a816SJohn Birrell SET_SIZE(ret6) 62*2be1a816SJohn Birrell 63*2be1a816SJohn Birrell ENTRY(waiting) 64*2be1a816SJohn Birrell pushl %ebp 65*2be1a816SJohn Birrell movl %esp, %ebp 66*2be1a816SJohn Birrell movl 8(%ebp), %eax 67*2be1a816SJohn Birrell movl (%eax), %eax 68*2be1a816SJohn Birrell movl %ebp, %esp 69*2be1a816SJohn Birrell popl %ebp 70*2be1a816SJohn Birrell ret 71*2be1a816SJohn Birrell SET_SIZE(waiting) 72*2be1a816SJohn Birrell 73*2be1a816SJohn Birrell ENTRY(main) 74*2be1a816SJohn Birrell pushl %ebp 75*2be1a816SJohn Birrell movl %esp, %ebp 76*2be1a816SJohn Birrell subl $0x4, %esp 77*2be1a816SJohn Birrell movl $0x0, -4(%ebp) 78*2be1a816SJohn Birrell 79*2be1a816SJohn Birrell1: 80*2be1a816SJohn Birrell leal -4(%ebp), %eax 81*2be1a816SJohn Birrell pushl %eax 82*2be1a816SJohn Birrell call waiting 83*2be1a816SJohn Birrell addl $0x4, %esp 84*2be1a816SJohn Birrell 85*2be1a816SJohn Birrell testl %eax, %eax 86*2be1a816SJohn Birrell jz 1b 87*2be1a816SJohn Birrell 88*2be1a816SJohn Birrell movl %esp, %esi 89*2be1a816SJohn Birrell 90*2be1a816SJohn Birrell call ret1 91*2be1a816SJohn Birrell call ret2 92*2be1a816SJohn Birrell call ret3 93*2be1a816SJohn Birrell call ret4 94*2be1a816SJohn Birrell call ret5 95*2be1a816SJohn Birrell call ret6 96*2be1a816SJohn Birrell 97*2be1a816SJohn Birrell cmpl %esp, %esi 98*2be1a816SJohn Birrell jne 1f 99*2be1a816SJohn Birrell 100*2be1a816SJohn Birrell ALTENTRY(done) 101*2be1a816SJohn Birrell nop 102*2be1a816SJohn Birrell SET_SIZE(done) 103*2be1a816SJohn Birrell 104*2be1a816SJohn Birrell movl $0, %eax 105*2be1a816SJohn Birrell movl %ebp, %esp 106*2be1a816SJohn Birrell popl %ebp 107*2be1a816SJohn Birrell ret 108*2be1a816SJohn Birrell 109*2be1a816SJohn Birrell1: 110*2be1a816SJohn Birrell movl $1, %eax 111*2be1a816SJohn Birrell movl %ebp, %esp 112*2be1a816SJohn Birrell popl %ebp 113*2be1a816SJohn Birrell ret 114*2be1a816SJohn Birrell SET_SIZE(main) 115