mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-01 12:20:26 +02:00
111 lines
1.6 KiB
ArmAsm
111 lines
1.6 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.
|
|
#
|
|
|
|
.text
|
|
.globl b_call_reg
|
|
.globl b_call_imm
|
|
.globl b_add
|
|
.globl b_load
|
|
|
|
.ent b_null
|
|
b_null:
|
|
ret $31,($18),1
|
|
.end b_null
|
|
|
|
.ent b_call_reg
|
|
b_call_reg:
|
|
lda $27,b_null
|
|
$L0:
|
|
jsr $18,($27)
|
|
jsr $18,($27)
|
|
jsr $18,($27)
|
|
jsr $18,($27)
|
|
jsr $18,($27)
|
|
|
|
jsr $18,($27)
|
|
jsr $18,($27)
|
|
jsr $18,($27)
|
|
jsr $18,($27)
|
|
jsr $18,($27)
|
|
|
|
subq $16,1,$16
|
|
bgt $16,$L0
|
|
|
|
ret $31,($26),1
|
|
.end
|
|
|
|
|
|
.ent b_call_imm
|
|
b_call_imm:
|
|
$L1:
|
|
jsr $18,b_null
|
|
jsr $18,b_null
|
|
jsr $18,b_null
|
|
jsr $18,b_null
|
|
jsr $18,b_null
|
|
|
|
jsr $18,b_null
|
|
jsr $18,b_null
|
|
jsr $18,b_null
|
|
jsr $18,b_null
|
|
jsr $18,b_null
|
|
|
|
subq $16,1,$16
|
|
bgt $16,$L1
|
|
|
|
ret $31,($26),1
|
|
.end
|
|
|
|
|
|
.ent b_add
|
|
b_add:
|
|
$L2:
|
|
addq $31,$31,$31
|
|
addq $31,$31,$31
|
|
addq $31,$31,$31
|
|
addq $31,$31,$31
|
|
addq $31,$31,$31
|
|
|
|
addq $31,$31,$31
|
|
addq $31,$31,$31
|
|
addq $31,$31,$31
|
|
addq $31,$31,$31
|
|
addq $31,$31,$31
|
|
|
|
subq $16,1,$16
|
|
bgt $16,$L2
|
|
|
|
ret $31,($26),1
|
|
.end
|
|
|
|
|
|
.ent b_load
|
|
b_load:
|
|
$L3:
|
|
ldq $31,0($30)
|
|
ldq $31,8($30)
|
|
ldq $31,16($30)
|
|
ldq $31,24($30)
|
|
ldq $31,32($30)
|
|
|
|
ldq $31,0($30)
|
|
ldq $31,8($30)
|
|
ldq $31,16($30)
|
|
ldq $31,24($30)
|
|
ldq $31,32($30)
|
|
|
|
subq $16,1,$16
|
|
bgt $16,$L3
|
|
|
|
ret $31,($26),1
|
|
.end
|