| /* | |
| * QuickThreads -- Threads-building toolkit. | |
| * Copyright (c) 1993 by David Keppel | |
| * | |
| * Permission to use, copy, modify and distribute this software and | |
| * its documentation for any purpose and without fee is hereby | |
| * granted, provided that the above copyright notice and this notice | |
| * appear in all copies. This software is provided as a | |
| * proof-of-concept and for demonstration purposes; there is no | |
| * representation about the suitability of this software for any | |
| * purpose. | |
| */ | |
| .globl _b_call_reg | |
| .globl _b_call_imm | |
| .globl _b_add | |
| .globl _b_load | |
| _b_null: | |
| retl | |
| nop | |
| _b_call_reg: | |
| sethi %hi(_b_null),%o4 | |
| or %o4,%lo(_b_null),%o4 | |
| add %o7,%g0, %o3 | |
| L0: | |
| call %o4 | |
| nop | |
| call %o4 | |
| nop | |
| call %o4 | |
| nop | |
| call %o4 | |
| nop | |
| call %o4 | |
| nop | |
| subcc %o0,1,%o0 | |
| bg L0 | |
| nop | |
| add %o3,%g0, %o7 | |
| retl | |
| nop | |
| _b_call_imm: | |
| sethi %hi(_b_null),%o4 | |
| or %o4,%lo(_b_null),%o4 | |
| add %o7,%g0, %o3 | |
| L1: | |
| call _b_null | |
| call _b_null | |
| call _b_null | |
| call _b_null | |
| call _b_null | |
| subcc %o0,1,%o0 | |
| bg L0 | |
| nop | |
| add %o3,%g0, %o7 | |
| retl | |
| nop | |
| _b_add: | |
| add %o0,%g0,%o1 | |
| add %o0,%g0,%o2 | |
| add %o0,%g0,%o3 | |
| add %o0,%g0,%o4 | |
| L2: | |
| sub %o0,5,%o0 | |
| sub %o1,5,%o1 | |
| sub %o2,5,%o2 | |
| sub %o3,5,%o3 | |
| sub %o4,5,%o4 | |
| subcc %o0,5,%o0 | |
| sub %o1,5,%o1 | |
| sub %o2,5,%o2 | |
| sub %o3,5,%o3 | |
| sub %o4,5,%o4 | |
| bg L2 | |
| nop | |
| retl | |
| nop | |
| _b_load: | |
| ld [%sp+ 0], %g0 | |
| L3: | |
| ld [%sp+ 4],%g0 | |
| ld [%sp+ 8],%g0 | |
| ld [%sp+12],%g0 | |
| ld [%sp+16],%g0 | |
| ld [%sp+20],%g0 | |
| ld [%sp+24],%g0 | |
| ld [%sp+28],%g0 | |
| ld [%sp+32],%g0 | |
| ld [%sp+36],%g0 | |
| subcc %o0,10,%o0 | |
| bg L3 | |
| ld [%sp+ 0],%g0 | |
| retl | |
| nop |