]> git.donarmstrong.com Git - lilypond.git/blobdiff - guile18/qt/md/m88k_b.s
Import guile-1.8 as multiple upstream tarball component
[lilypond.git] / guile18 / qt / md / m88k_b.s
diff --git a/guile18/qt/md/m88k_b.s b/guile18/qt/md/m88k_b.s
new file mode 100644 (file)
index 0000000..1926e6a
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * 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
+
+_b_null:
+       jmp   r1
+
+_b_call_reg:
+       subu r31, r31,8                 /* Alloc ret pc save space. */
+       st r1, r31,32                   /* Save ret pc. */
+       or.u r3, r0,hi16(_b_null)       /* Put call addr in a reg. */
+       or r3, r3,lo16(_b_null)
+       jsr r3
+L0:
+       jsr r3
+       jsr r3
+       jsr r3
+       jsr.n r3
+       subu r2, r2,5                   /* Decrement #of iter to go. */
+       bcnd.n gt0,r2,L0
+       jsr r3
+
+       ld r1, r31,32
+       jmp r1
+
+
+_b_call_imm:
+       subu r31, r31,8                 /* Alloc ret pc save space. */
+       st r1, r31,32                   /* Save ret pc. */
+       bsr _b_null
+L1:
+       bsr _b_null
+       bsr _b_null
+       bsr _b_null
+       bsr.n _b_null
+       subu r2, r2,5                   /* Decrement #of iter to go. */
+       bcnd.n gt0,r2,L1
+       bsr _b_null
+
+       ld r1, r31,32
+       jmp r1
+
+_b_add:
+       add r0, r3,r4
+L2:
+       add r3, r4,r5
+       add r4, r5,r6
+       add r5, r6,r7
+       add r8, r9,r0
+       add r0, r3,r4
+       add r3, r4,r5
+       add r4, r5,r6
+       add r5, r6,r7
+       add r8, r9,r0
+
+       add r0, r3,r4
+       add r3, r4,r5
+       add r4, r5,r6
+       add r5, r6,r7
+       add r8, r9,r0
+       add r0, r3,r4
+       add r3, r4,r5
+       add r4, r5,r6
+       add r5, r6,r7
+       add r8, r9,r0
+
+       subu r2, r2,20                  /* Decrement #of iter to go. */
+       bcnd.n gt0,r2,L2
+       add r0, r3,r4
+
+       jmp r1
+
+
+_b_load:
+       ld r0, r31,0
+L3:
+       ld r3, r31,4
+       ld r4, r31,8
+       ld r5, r31,12
+       ld r6, r31,16
+       ld r0, r31,0
+       ld r3, r31,4
+       ld r4, r31,8
+       ld r5, r31,12
+       ld r6, r31,16
+
+       ld r0, r31,0
+       ld r3, r31,4
+       ld r4, r31,8
+       ld r5, r31,12
+       ld r6, r31,16
+       ld r0, r31,0
+       ld r3, r31,4
+       ld r4, r31,8
+       ld r5, r31,12
+       ld r6, r31,16
+
+       subu r2, r2,20                  /* Decrement #of iter to go. */
+       bcnd.n gt0,r2,L3
+       ld r0, r31,0
+
+       jmp   r1