1/* 2 * QuickThreads -- Threads-building toolkit. 3 * Copyright (c) 1993 by David Keppel 4 * 5 * Permission to use, copy, modify and distribute this software and 6 * its documentation for any purpose and without fee is hereby 7 * granted, provided that the above copyright notice and this notice 8 * appear in all copies. This software is provided as a 9 * proof-of-concept and for demonstration purposes; there is no 10 * representation about the suitability of this software for any 11 * purpose. 12 */ 13 14 .globl _b_call_reg 15 .globl _b_call_imm 16 .globl _b_add 17 .globl _b_load 18 19_b_null: 20 retl 21 nop 22 23_b_call_reg: 24 sethi %hi(_b_null),%o4 25 or %o4,%lo(_b_null),%o4 26 add %o7,%g0, %o3 27L0: 28 call %o4 29 nop 30 call %o4 31 nop 32 call %o4 33 nop 34 call %o4 35 nop 36 call %o4 37 nop 38 39 subcc %o0,1,%o0 40 bg L0 41 nop 42 add %o3,%g0, %o7 43 retl 44 nop 45 46_b_call_imm: 47 sethi %hi(_b_null),%o4 48 or %o4,%lo(_b_null),%o4 49 add %o7,%g0, %o3 50L1: 51 call _b_null 52 call _b_null 53 call _b_null 54 call _b_null 55 call _b_null 56 57 subcc %o0,1,%o0 58 bg L0 59 nop 60 add %o3,%g0, %o7 61 retl 62 nop 63 64 65_b_add: 66 add %o0,%g0,%o1 67 add %o0,%g0,%o2 68 add %o0,%g0,%o3 69 add %o0,%g0,%o4 70L2: 71 sub %o0,5,%o0 72 sub %o1,5,%o1 73 sub %o2,5,%o2 74 sub %o3,5,%o3 75 sub %o4,5,%o4 76 77 subcc %o0,5,%o0 78 sub %o1,5,%o1 79 sub %o2,5,%o2 80 sub %o3,5,%o3 81 sub %o4,5,%o4 82 83 bg L2 84 nop 85 retl 86 nop 87 88 89_b_load: 90 ld [%sp+ 0], %g0 91L3: 92 ld [%sp+ 4],%g0 93 ld [%sp+ 8],%g0 94 ld [%sp+12],%g0 95 ld [%sp+16],%g0 96 ld [%sp+20],%g0 97 ld [%sp+24],%g0 98 ld [%sp+28],%g0 99 ld [%sp+32],%g0 100 ld [%sp+36],%g0 101 102 subcc %o0,10,%o0 103 bg L3 104 ld [%sp+ 0],%g0 105 retl 106 nop 107