112027Sjungma@eit.uni-kl.de/* 212027Sjungma@eit.uni-kl.de * QuickThreads -- Threads-building toolkit. 312027Sjungma@eit.uni-kl.de * Copyright (c) 1993 by David Keppel 412027Sjungma@eit.uni-kl.de * 512027Sjungma@eit.uni-kl.de * Permission to use, copy, modify and distribute this software and 612027Sjungma@eit.uni-kl.de * its documentation for any purpose and without fee is hereby 712027Sjungma@eit.uni-kl.de * granted, provided that the above copyright notice and this notice 812027Sjungma@eit.uni-kl.de * appear in all copies. This software is provided as a 912027Sjungma@eit.uni-kl.de * proof-of-concept and for demonstration purposes; there is no 1012027Sjungma@eit.uni-kl.de * representation about the suitability of this software for any 1112027Sjungma@eit.uni-kl.de * purpose. 1212027Sjungma@eit.uni-kl.de */ 1312027Sjungma@eit.uni-kl.de 1412027Sjungma@eit.uni-kl.de .text 1512027Sjungma@eit.uni-kl.de .globl _b_call_reg 1612027Sjungma@eit.uni-kl.de .globl _b_call_imm 1712027Sjungma@eit.uni-kl.de .globl _b_add 1812027Sjungma@eit.uni-kl.de .globl _b_load 1912027Sjungma@eit.uni-kl.de 2012027Sjungma@eit.uni-kl.de_b_null: 2112027Sjungma@eit.uni-kl.de jmp r1 2212027Sjungma@eit.uni-kl.de 2312027Sjungma@eit.uni-kl.de_b_call_reg: 2412027Sjungma@eit.uni-kl.de subu r31, r31,8 /* Alloc ret pc save space. */ 2512027Sjungma@eit.uni-kl.de st r1, r31,32 /* Save ret pc. */ 2612027Sjungma@eit.uni-kl.de or.u r3, r0,hi16(_b_null) /* Put call addr in a reg. */ 2712027Sjungma@eit.uni-kl.de or r3, r3,lo16(_b_null) 2812027Sjungma@eit.uni-kl.de jsr r3 2912027Sjungma@eit.uni-kl.deL0: 3012027Sjungma@eit.uni-kl.de jsr r3 3112027Sjungma@eit.uni-kl.de jsr r3 3212027Sjungma@eit.uni-kl.de jsr r3 3312027Sjungma@eit.uni-kl.de jsr.n r3 3412027Sjungma@eit.uni-kl.de subu r2, r2,5 /* Decrement #of iter to go. */ 3512027Sjungma@eit.uni-kl.de bcnd.n gt0,r2,L0 3612027Sjungma@eit.uni-kl.de jsr r3 3712027Sjungma@eit.uni-kl.de 3812027Sjungma@eit.uni-kl.de ld r1, r31,32 3912027Sjungma@eit.uni-kl.de jmp r1 4012027Sjungma@eit.uni-kl.de 4112027Sjungma@eit.uni-kl.de 4212027Sjungma@eit.uni-kl.de_b_call_imm: 4312027Sjungma@eit.uni-kl.de subu r31, r31,8 /* Alloc ret pc save space. */ 4412027Sjungma@eit.uni-kl.de st r1, r31,32 /* Save ret pc. */ 4512027Sjungma@eit.uni-kl.de bsr _b_null 4612027Sjungma@eit.uni-kl.deL1: 4712027Sjungma@eit.uni-kl.de bsr _b_null 4812027Sjungma@eit.uni-kl.de bsr _b_null 4912027Sjungma@eit.uni-kl.de bsr _b_null 5012027Sjungma@eit.uni-kl.de bsr.n _b_null 5112027Sjungma@eit.uni-kl.de subu r2, r2,5 /* Decrement #of iter to go. */ 5212027Sjungma@eit.uni-kl.de bcnd.n gt0,r2,L1 5312027Sjungma@eit.uni-kl.de bsr _b_null 5412027Sjungma@eit.uni-kl.de 5512027Sjungma@eit.uni-kl.de ld r1, r31,32 5612027Sjungma@eit.uni-kl.de jmp r1 5712027Sjungma@eit.uni-kl.de 5812027Sjungma@eit.uni-kl.de_b_add: 5912027Sjungma@eit.uni-kl.de add r0, r3,r4 6012027Sjungma@eit.uni-kl.deL2: 6112027Sjungma@eit.uni-kl.de add r3, r4,r5 6212027Sjungma@eit.uni-kl.de add r4, r5,r6 6312027Sjungma@eit.uni-kl.de add r5, r6,r7 6412027Sjungma@eit.uni-kl.de add r8, r9,r0 6512027Sjungma@eit.uni-kl.de add r0, r3,r4 6612027Sjungma@eit.uni-kl.de add r3, r4,r5 6712027Sjungma@eit.uni-kl.de add r4, r5,r6 6812027Sjungma@eit.uni-kl.de add r5, r6,r7 6912027Sjungma@eit.uni-kl.de add r8, r9,r0 7012027Sjungma@eit.uni-kl.de 7112027Sjungma@eit.uni-kl.de add r0, r3,r4 7212027Sjungma@eit.uni-kl.de add r3, r4,r5 7312027Sjungma@eit.uni-kl.de add r4, r5,r6 7412027Sjungma@eit.uni-kl.de add r5, r6,r7 7512027Sjungma@eit.uni-kl.de add r8, r9,r0 7612027Sjungma@eit.uni-kl.de add r0, r3,r4 7712027Sjungma@eit.uni-kl.de add r3, r4,r5 7812027Sjungma@eit.uni-kl.de add r4, r5,r6 7912027Sjungma@eit.uni-kl.de add r5, r6,r7 8012027Sjungma@eit.uni-kl.de add r8, r9,r0 8112027Sjungma@eit.uni-kl.de 8212027Sjungma@eit.uni-kl.de subu r2, r2,20 /* Decrement #of iter to go. */ 8312027Sjungma@eit.uni-kl.de bcnd.n gt0,r2,L2 8412027Sjungma@eit.uni-kl.de add r0, r3,r4 8512027Sjungma@eit.uni-kl.de 8612027Sjungma@eit.uni-kl.de jmp r1 8712027Sjungma@eit.uni-kl.de 8812027Sjungma@eit.uni-kl.de 8912027Sjungma@eit.uni-kl.de_b_load: 9012027Sjungma@eit.uni-kl.de ld r0, r31,0 9112027Sjungma@eit.uni-kl.deL3: 9212027Sjungma@eit.uni-kl.de ld r3, r31,4 9312027Sjungma@eit.uni-kl.de ld r4, r31,8 9412027Sjungma@eit.uni-kl.de ld r5, r31,12 9512027Sjungma@eit.uni-kl.de ld r6, r31,16 9612027Sjungma@eit.uni-kl.de ld r0, r31,0 9712027Sjungma@eit.uni-kl.de ld r3, r31,4 9812027Sjungma@eit.uni-kl.de ld r4, r31,8 9912027Sjungma@eit.uni-kl.de ld r5, r31,12 10012027Sjungma@eit.uni-kl.de ld r6, r31,16 10112027Sjungma@eit.uni-kl.de 10212027Sjungma@eit.uni-kl.de ld r0, r31,0 10312027Sjungma@eit.uni-kl.de ld r3, r31,4 10412027Sjungma@eit.uni-kl.de ld r4, r31,8 10512027Sjungma@eit.uni-kl.de ld r5, r31,12 10612027Sjungma@eit.uni-kl.de ld r6, r31,16 10712027Sjungma@eit.uni-kl.de ld r0, r31,0 10812027Sjungma@eit.uni-kl.de ld r3, r31,4 10912027Sjungma@eit.uni-kl.de ld r4, r31,8 11012027Sjungma@eit.uni-kl.de ld r5, r31,12 11112027Sjungma@eit.uni-kl.de ld r6, r31,16 11212027Sjungma@eit.uni-kl.de 11312027Sjungma@eit.uni-kl.de subu r2, r2,20 /* Decrement #of iter to go. */ 11412027Sjungma@eit.uni-kl.de bcnd.n gt0,r2,L3 11512027Sjungma@eit.uni-kl.de ld r0, r31,0 11612027Sjungma@eit.uni-kl.de 11712027Sjungma@eit.uni-kl.de jmp r1 118