mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-01 04:10:18 +02:00
99 lines
1.3 KiB
ArmAsm
99 lines
1.3 KiB
ArmAsm
/*
|
|
* 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
|