diff options
Diffstat (limited to 'qt/md/mips_b.s')
-rw-r--r-- | qt/md/mips_b.s | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/qt/md/mips_b.s b/qt/md/mips_b.s new file mode 100644 index 000000000..5b3740843 --- /dev/null +++ b/qt/md/mips_b.s @@ -0,0 +1,99 @@ +/* + * 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 + + .ent b_null +b_null: + j $31 + .end b_null + + .ent b_call_reg +b_call_reg: + la $5,b_null + add $6, $31,0 +$L0: + jal $5 + jal $5 + jal $5 + jal $5 + jal $5 + + sub $4, $4,5 + bgtz $4,$L0 + j $6 + .end + + + .ent b_call_imm +b_call_imm: + add $6, $31,0 +$L1: + jal b_null + jal b_null + jal b_null + jal b_null + jal b_null + + sub $4, $4,5 + bgtz $4,$L1 + j $6 + .end + + + .ent b_add +b_add: + add $5, $0,$4 + add $6, $0,$4 + add $7, $0,$4 + add $8, $0,$4 +$L2: + sub $4, $4,5 + sub $5, $5,5 + sub $6, $6,5 + sub $7, $7,5 + sub $8, $8,5 + + sub $4, $4,5 + sub $5, $5,5 + sub $6, $6,5 + sub $7, $7,5 + sub $8, $8,5 + + bgtz $4,$L2 + j $31 + .end + + + .ent b_load +b_load: +$L3: + ld $0, 0($sp) + ld $0, 4($sp) + ld $0, 8($sp) + ld $0, 12($sp) + ld $0, 16($sp) + + ld $0, 20($sp) + ld $0, 24($sp) + ld $0, 28($sp) + ld $0, 32($sp) + ld $0, 36($sp) + + sub $4, $4,10 + bgtz $4,$L3 + j $31 + .end |