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	.ent b_null
20b_null:
21	j $31
22	.end b_null
23
24	.ent b_call_reg
25b_call_reg:
26	la $5,b_null
27	add $6, $31,0
28$L0:
29	jal $5
30	jal $5
31	jal $5
32	jal $5
33	jal $5
34
35	sub $4, $4,5
36	bgtz $4,$L0
37	j $6
38	.end
39
40
41	.ent b_call_imm
42b_call_imm:
43	add $6, $31,0
44$L1:
45	jal b_null
46	jal b_null
47	jal b_null
48	jal b_null
49	jal b_null
50
51	sub $4, $4,5
52	bgtz $4,$L1
53	j $6
54	.end
55
56
57	.ent b_add
58b_add:
59	add $5, $0,$4
60	add $6, $0,$4
61	add $7, $0,$4
62	add $8, $0,$4
63$L2:
64	sub $4, $4,5
65	sub $5, $5,5
66	sub $6, $6,5
67	sub $7, $7,5
68	sub $8, $8,5
69
70	sub $4, $4,5
71	sub $5, $5,5
72	sub $6, $6,5
73	sub $7, $7,5
74	sub $8, $8,5
75
76	bgtz $4,$L2
77	j $31
78	.end
79
80
81	.ent b_load
82b_load:
83$L3:
84	ld $0, 0($sp)
85	ld $0, 4($sp)
86	ld $0, 8($sp)
87	ld $0, 12($sp)
88	ld $0, 16($sp)
89
90	ld $0, 20($sp)
91	ld $0, 24($sp)
92	ld $0, 28($sp)
93	ld $0, 32($sp)
94	ld $0, 36($sp)
95
96	sub $4, $4,10
97	bgtz $4,$L3
98	j $31
99	.end
100