|
kusano |
2b45e8 |
/*********************************************************************/
|
|
kusano |
2b45e8 |
/* Copyright 2009, 2010 The University of Texas at Austin. */
|
|
kusano |
2b45e8 |
/* All rights reserved. */
|
|
kusano |
2b45e8 |
/* */
|
|
kusano |
2b45e8 |
/* Redistribution and use in source and binary forms, with or */
|
|
kusano |
2b45e8 |
/* without modification, are permitted provided that the following */
|
|
kusano |
2b45e8 |
/* conditions are met: */
|
|
kusano |
2b45e8 |
/* */
|
|
kusano |
2b45e8 |
/* 1. Redistributions of source code must retain the above */
|
|
kusano |
2b45e8 |
/* copyright notice, this list of conditions and the following */
|
|
kusano |
2b45e8 |
/* disclaimer. */
|
|
kusano |
2b45e8 |
/* */
|
|
kusano |
2b45e8 |
/* 2. Redistributions in binary form must reproduce the above */
|
|
kusano |
2b45e8 |
/* copyright notice, this list of conditions and the following */
|
|
kusano |
2b45e8 |
/* disclaimer in the documentation and/or other materials */
|
|
kusano |
2b45e8 |
/* provided with the distribution. */
|
|
kusano |
2b45e8 |
/* */
|
|
kusano |
2b45e8 |
/* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT */
|
|
kusano |
2b45e8 |
/* AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, */
|
|
kusano |
2b45e8 |
/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
|
|
kusano |
2b45e8 |
/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
|
|
kusano |
2b45e8 |
/* DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT */
|
|
kusano |
2b45e8 |
/* AUSTIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
|
|
kusano |
2b45e8 |
/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */
|
|
kusano |
2b45e8 |
/* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE */
|
|
kusano |
2b45e8 |
/* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR */
|
|
kusano |
2b45e8 |
/* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
|
|
kusano |
2b45e8 |
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */
|
|
kusano |
2b45e8 |
/* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */
|
|
kusano |
2b45e8 |
/* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
|
|
kusano |
2b45e8 |
/* POSSIBILITY OF SUCH DAMAGE. */
|
|
kusano |
2b45e8 |
/* */
|
|
kusano |
2b45e8 |
/* The views and conclusions contained in the software and */
|
|
kusano |
2b45e8 |
/* documentation are those of the authors and should not be */
|
|
kusano |
2b45e8 |
/* interpreted as representing official policies, either expressed */
|
|
kusano |
2b45e8 |
/* or implied, of The University of Texas at Austin. */
|
|
kusano |
2b45e8 |
/*********************************************************************/
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define ASSEMBLER
|
|
kusano |
2b45e8 |
#include "common.h"
|
|
kusano |
2b45e8 |
#include "version.h"
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if !defined(EV4) && !defined(EV5) && !defined(EV6)
|
|
kusano |
2b45e8 |
#error "Architecture is not specified."
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef EV6
|
|
kusano |
2b45e8 |
#define PREFETCHSIZE 56
|
|
kusano |
2b45e8 |
#define UNOP unop
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef EV5
|
|
kusano |
2b45e8 |
#define PREFETCHSIZE 48
|
|
kusano |
2b45e8 |
#define UNOP
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef EV4
|
|
kusano |
2b45e8 |
#define UNOP
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
.set noat
|
|
kusano |
2b45e8 |
.set noreorder
|
|
kusano |
2b45e8 |
.arch ev6
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
.text
|
|
kusano |
2b45e8 |
.align 5
|
|
kusano |
2b45e8 |
.globl CNAME
|
|
kusano |
2b45e8 |
.ent CNAME
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define STACKSIZE 80
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define M $16
|
|
kusano |
2b45e8 |
#define N $17
|
|
kusano |
2b45e8 |
#define K $18
|
|
kusano |
2b45e8 |
#define A $21
|
|
kusano |
2b45e8 |
#define B $22
|
|
kusano |
2b45e8 |
#define C $20
|
|
kusano |
2b45e8 |
#define LDC $23
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define C1 $19
|
|
kusano |
2b45e8 |
#define C2 $24
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define AO $at
|
|
kusano |
2b45e8 |
#define BO $5
|
|
kusano |
2b45e8 |
#define I $6
|
|
kusano |
2b45e8 |
#define J $7
|
|
kusano |
2b45e8 |
#define L $8
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define a1 $f16
|
|
kusano |
2b45e8 |
#define a2 $f17
|
|
kusano |
2b45e8 |
#define a3 $f18
|
|
kusano |
2b45e8 |
#define a4 $f19
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define b1 $f20
|
|
kusano |
2b45e8 |
#define b2 $f21
|
|
kusano |
2b45e8 |
#define b3 $f22
|
|
kusano |
2b45e8 |
#define b4 $f23
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define t1 $f24
|
|
kusano |
2b45e8 |
#define t2 $f25
|
|
kusano |
2b45e8 |
#define t3 $f26
|
|
kusano |
2b45e8 |
#define t4 $f27
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define a5 $f28
|
|
kusano |
2b45e8 |
#define a6 $f30
|
|
kusano |
2b45e8 |
#define b5 $f29
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define alpha_i $f29
|
|
kusano |
2b45e8 |
#define alpha_r $f30
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define c01 $f0
|
|
kusano |
2b45e8 |
#define c02 $f1
|
|
kusano |
2b45e8 |
#define c03 $f2
|
|
kusano |
2b45e8 |
#define c04 $f3
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define c05 $f4
|
|
kusano |
2b45e8 |
#define c06 $f5
|
|
kusano |
2b45e8 |
#define c07 $f6
|
|
kusano |
2b45e8 |
#define c08 $f7
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define c09 $f8
|
|
kusano |
2b45e8 |
#define c10 $f9
|
|
kusano |
2b45e8 |
#define c11 $f10
|
|
kusano |
2b45e8 |
#define c12 $f11
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define c13 $f12
|
|
kusano |
2b45e8 |
#define c14 $f13
|
|
kusano |
2b45e8 |
#define c15 $f14
|
|
kusano |
2b45e8 |
#define c16 $f15
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#define TMP1 $0
|
|
kusano |
2b45e8 |
#define TMP2 $1
|
|
kusano |
2b45e8 |
#define KK $2
|
|
kusano |
2b45e8 |
#define AORIG $3
|
|
kusano |
2b45e8 |
#define OFFSET $4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(LT)
|
|
kusano |
2b45e8 |
#ifndef CONJ
|
|
kusano |
2b45e8 |
#define ADD1 ADD
|
|
kusano |
2b45e8 |
#define ADD2 SUB
|
|
kusano |
2b45e8 |
#define ADD3 ADD
|
|
kusano |
2b45e8 |
#define ADD4 ADD
|
|
kusano |
2b45e8 |
#define ADD5 SUB
|
|
kusano |
2b45e8 |
#define ADD6 ADD
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
#define ADD1 ADD
|
|
kusano |
2b45e8 |
#define ADD2 ADD
|
|
kusano |
2b45e8 |
#define ADD3 SUB
|
|
kusano |
2b45e8 |
#define ADD4 ADD
|
|
kusano |
2b45e8 |
#define ADD5 ADD
|
|
kusano |
2b45e8 |
#define ADD6 SUB
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
#ifndef CONJ
|
|
kusano |
2b45e8 |
#define ADD1 ADD
|
|
kusano |
2b45e8 |
#define ADD2 SUB
|
|
kusano |
2b45e8 |
#define ADD3 ADD
|
|
kusano |
2b45e8 |
#define ADD4 ADD
|
|
kusano |
2b45e8 |
#define ADD5 SUB
|
|
kusano |
2b45e8 |
#define ADD6 ADD
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
#define ADD1 ADD
|
|
kusano |
2b45e8 |
#define ADD2 ADD
|
|
kusano |
2b45e8 |
#define ADD3 ADD
|
|
kusano |
2b45e8 |
#define ADD4 SUB
|
|
kusano |
2b45e8 |
#define ADD5 ADD
|
|
kusano |
2b45e8 |
#define ADD6 SUB
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
CNAME:
|
|
kusano |
2b45e8 |
.frame $sp, STACKSIZE, $26, 0
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef PROFILE
|
|
kusano |
2b45e8 |
ldgp $gp, 0($27)
|
|
kusano |
2b45e8 |
lda $at, _mcount
|
|
kusano |
2b45e8 |
jsr $at, ($at), _mcount
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifndef PROFILE
|
|
kusano |
2b45e8 |
.prologue 0
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
.prologue 1
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda $sp, -STACKSIZE($sp)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ldq B, 0 + STACKSIZE($sp)
|
|
kusano |
2b45e8 |
ldq C, 8 + STACKSIZE($sp)
|
|
kusano |
2b45e8 |
ldq LDC, 16 + STACKSIZE($sp)
|
|
kusano |
2b45e8 |
ldq OFFSET, 24 + STACKSIZE($sp)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
sll LDC, ZBASE_SHIFT, LDC
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
stt $f2, 0($sp)
|
|
kusano |
2b45e8 |
stt $f3, 8($sp)
|
|
kusano |
2b45e8 |
stt $f4, 16($sp)
|
|
kusano |
2b45e8 |
stt $f5, 24($sp)
|
|
kusano |
2b45e8 |
stt $f6, 32($sp)
|
|
kusano |
2b45e8 |
stt $f7, 40($sp)
|
|
kusano |
2b45e8 |
stt $f8, 48($sp)
|
|
kusano |
2b45e8 |
stt $f9, 56($sp)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
cmple M, 0, $0
|
|
kusano |
2b45e8 |
cmple N, 0, $1
|
|
kusano |
2b45e8 |
cmple K, 0, $2
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
or $0, $1, $0
|
|
kusano |
2b45e8 |
or $0, $2, $0
|
|
kusano |
2b45e8 |
bne $0, $L999
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
addq M, M, TMP2
|
|
kusano |
2b45e8 |
mulq TMP2, K, TMP1
|
|
kusano |
2b45e8 |
SXADDQ TMP1, A, A
|
|
kusano |
2b45e8 |
SXADDQ TMP2, C, C
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RN
|
|
kusano |
2b45e8 |
negq OFFSET, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RT
|
|
kusano |
2b45e8 |
mulq N, K, TMP1
|
|
kusano |
2b45e8 |
addq TMP1, TMP1, TMP1
|
|
kusano |
2b45e8 |
SXADDQ TMP1, B, B
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
mulq N, LDC, TMP1
|
|
kusano |
2b45e8 |
addq TMP1, C, C
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
subq N, OFFSET, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
and N, 1, J
|
|
kusano |
2b45e8 |
ble J, $L30
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RT
|
|
kusano |
2b45e8 |
sll K, ZBASE_SHIFT, TMP1
|
|
kusano |
2b45e8 |
subq B, TMP1, B
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
subq C, LDC, C1
|
|
kusano |
2b45e8 |
subq C, LDC, C
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
mov C, C1
|
|
kusano |
2b45e8 |
addq C, LDC, C
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
addq M, OFFSET, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LT
|
|
kusano |
2b45e8 |
mov OFFSET, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(RT)
|
|
kusano |
2b45e8 |
mov A, AORIG
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
mov A, AO
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
sra M, 1, I
|
|
kusano |
2b45e8 |
ble I, $L50
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L41:
|
|
kusano |
2b45e8 |
#if defined(LT) || defined(RN)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t1
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t2
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t3
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b1, 0 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c01
|
|
kusano |
2b45e8 |
LD b2, 1 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c05
|
|
kusano |
2b45e8 |
LD b3, 2 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c02
|
|
kusano |
2b45e8 |
LD b4, 3 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c06
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda BO, 2 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c03
|
|
kusano |
2b45e8 |
lda AO, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c07
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda L, -2(KK)
|
|
kusano |
2b45e8 |
fclr c04
|
|
kusano |
2b45e8 |
fclr c08
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ble KK, $L48
|
|
kusano |
2b45e8 |
ble L, $L45
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
sll K, ZBASE_SHIFT + 1, TMP1
|
|
kusano |
2b45e8 |
subq AORIG, TMP1, AORIG
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
sll KK, ZBASE_SHIFT + 1, TMP1
|
|
kusano |
2b45e8 |
addq AORIG, TMP1, AO
|
|
kusano |
2b45e8 |
sll KK, ZBASE_SHIFT, TMP1
|
|
kusano |
2b45e8 |
addq B, TMP1, BO
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
subq K, KK, TMP1
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t1
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t2
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t3
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c01
|
|
kusano |
2b45e8 |
LD b2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c05
|
|
kusano |
2b45e8 |
LD b3, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c02
|
|
kusano |
2b45e8 |
LD b4, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c06
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda BO, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c03
|
|
kusano |
2b45e8 |
lda AO, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c07
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda L, -2(TMP1)
|
|
kusano |
2b45e8 |
fclr c04
|
|
kusano |
2b45e8 |
fclr c08
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ble TMP1, $L48
|
|
kusano |
2b45e8 |
ble L, $L45
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
.align 5
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L42:
|
|
kusano |
2b45e8 |
ADD4 c05, t1, c05
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a1, b1, t1
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c06, t2, c06
|
|
kusano |
2b45e8 |
lda L, -2(L)
|
|
kusano |
2b45e8 |
MUL a2, b1, t2
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c07, t3, c07
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a3, b1, t3
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c08, t4, c08
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a4, b1, t4
|
|
kusano |
2b45e8 |
LD b1, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a1, b2, t1
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
lda BO, 4 * SIZE(BO)
|
|
kusano |
2b45e8 |
MUL a2, b2, t2
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c03, t3, c03
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a3, b2, t3
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c04, t4, c04
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a4, b2, t4
|
|
kusano |
2b45e8 |
LD a5, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c05, t1, c05
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a1, b3, t1
|
|
kusano |
2b45e8 |
LD b2, -1 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c06, t2, c06
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a2, b3, t2
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c07, t3, c07
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a3, b3, t3
|
|
kusano |
2b45e8 |
lda AO, 8 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c08, t4, c08
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a5, b3, t4
|
|
kusano |
2b45e8 |
LD b3, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a1, b4, t1
|
|
kusano |
2b45e8 |
LD a1, -4 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a2, b4, t2
|
|
kusano |
2b45e8 |
LD a2, -3 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c03, t3, c03
|
|
kusano |
2b45e8 |
LD a4, -1 * SIZE(AO)
|
|
kusano |
2b45e8 |
MUL a3, b4, t3
|
|
kusano |
2b45e8 |
LD a3, -2 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c04, t4, c04
|
|
kusano |
2b45e8 |
MUL a5, b4, t4
|
|
kusano |
2b45e8 |
LD b4, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
bgt L, $L42
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L45:
|
|
kusano |
2b45e8 |
ADD4 c05, t1, c05
|
|
kusano |
2b45e8 |
MUL b1, a1, t1
|
|
kusano |
2b45e8 |
#if defined(LT) || defined(RN)
|
|
kusano |
2b45e8 |
blbs KK, $L47
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
blbs TMP1, $L47
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c06, t2, c06
|
|
kusano |
2b45e8 |
MUL a2, b1, t2
|
|
kusano |
2b45e8 |
ADD4 c07, t3, c07
|
|
kusano |
2b45e8 |
MUL a3, b1, t3
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c08, t4, c08
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a4, b1, t4
|
|
kusano |
2b45e8 |
LD b1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a1, b2, t1
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a2, b2, t2
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c03, t3, c03
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a3, b2, t3
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c04, t4, c04
|
|
kusano |
2b45e8 |
MUL a4, b2, t4
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
lda AO, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c05, t1, c05
|
|
kusano |
2b45e8 |
LD b2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
MUL a1, b1, t1
|
|
kusano |
2b45e8 |
lda BO, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L47:
|
|
kusano |
2b45e8 |
ADD2 c06, t2, c06
|
|
kusano |
2b45e8 |
MUL a2, b1, t2
|
|
kusano |
2b45e8 |
ADD4 c07, t3, c07
|
|
kusano |
2b45e8 |
MUL a3, b1, t3
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c08, t4, c08
|
|
kusano |
2b45e8 |
MUL a4, b1, t4
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
MUL a1, b2, t1
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
MUL a2, b2, t2
|
|
kusano |
2b45e8 |
ADD1 c03, t3, c03
|
|
kusano |
2b45e8 |
MUL a3, b2, t3
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c04, t4, c04
|
|
kusano |
2b45e8 |
lda AO, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
MUL a4, b2, t4
|
|
kusano |
2b45e8 |
lda BO, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c05, t1, c05
|
|
kusano |
2b45e8 |
ADD2 c06, t2, c06
|
|
kusano |
2b45e8 |
ADD4 c07, t3, c07
|
|
kusano |
2b45e8 |
ADD2 c08, t4, c08
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD c01, c06, c01
|
|
kusano |
2b45e8 |
ADD c02, c05, c02
|
|
kusano |
2b45e8 |
ADD c03, c08, c03
|
|
kusano |
2b45e8 |
ADD c04, c07, c04
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L48:
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(RT)
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
subq KK, 2, TMP1
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
subq KK, 1, TMP1
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT + 1, TMP2
|
|
kusano |
2b45e8 |
addq AORIG, TMP2, AO
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT, TMP2
|
|
kusano |
2b45e8 |
addq B, TMP2, BO
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
lda AO, -4 * SIZE(AO)
|
|
kusano |
2b45e8 |
lda BO, -2 * SIZE(BO)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(LT)
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB a1, c01, c01
|
|
kusano |
2b45e8 |
SUB a2, c02, c02
|
|
kusano |
2b45e8 |
SUB a3, c03, c03
|
|
kusano |
2b45e8 |
SUB a4, c04, c04
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB a1, c01, c01
|
|
kusano |
2b45e8 |
SUB a2, c02, c02
|
|
kusano |
2b45e8 |
SUB a3, c03, c03
|
|
kusano |
2b45e8 |
SUB a4, c04, c04
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
LD a1, 6 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a2, 7 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a3, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a4, 5 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c04, t1
|
|
kusano |
2b45e8 |
MUL a2, c03, t2
|
|
kusano |
2b45e8 |
MUL a1, c03, c03
|
|
kusano |
2b45e8 |
MUL a1, c04, c04
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c03, t1, c03
|
|
kusano |
2b45e8 |
ADD6 c04, t2, c04
|
|
kusano |
2b45e8 |
MUL a3, c03, t1
|
|
kusano |
2b45e8 |
MUL a3, c04, t2
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB c01, t1, c01
|
|
kusano |
2b45e8 |
SUB c02, t2, c02
|
|
kusano |
2b45e8 |
MUL a4, c04, t1
|
|
kusano |
2b45e8 |
MUL a4, c03, t2
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD6 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD5 c02, t2, c02
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c02, t1
|
|
kusano |
2b45e8 |
MUL a2, c01, t2
|
|
kusano |
2b45e8 |
MUL a1, c01, c01
|
|
kusano |
2b45e8 |
MUL a1, c02, c02
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD6 c02, t2, c02
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LT
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c02, t1
|
|
kusano |
2b45e8 |
MUL a2, c01, t2
|
|
kusano |
2b45e8 |
MUL a1, c01, c01
|
|
kusano |
2b45e8 |
MUL a1, c02, c02
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD6 c02, t2, c02
|
|
kusano |
2b45e8 |
MUL a3, c01, t1
|
|
kusano |
2b45e8 |
MUL a3, c02, t2
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB c03, t1, c03
|
|
kusano |
2b45e8 |
SUB c04, t2, c04
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a4, c02, t1
|
|
kusano |
2b45e8 |
MUL a4, c01, t2
|
|
kusano |
2b45e8 |
ADD6 c03, t1, c03
|
|
kusano |
2b45e8 |
ADD5 c04, t2, c04
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 6 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a2, 7 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c04, t1
|
|
kusano |
2b45e8 |
MUL a2, c03, t2
|
|
kusano |
2b45e8 |
MUL a1, c03, c03
|
|
kusano |
2b45e8 |
MUL a1, c04, c04
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c03, t1, c03
|
|
kusano |
2b45e8 |
ADD6 c04, t2, c04
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(RN) || defined(RT)
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c02, t1
|
|
kusano |
2b45e8 |
MUL a2, c01, t2
|
|
kusano |
2b45e8 |
MUL a2, c04, t3
|
|
kusano |
2b45e8 |
MUL a2, c03, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a1, c01, c01
|
|
kusano |
2b45e8 |
MUL a1, c02, c02
|
|
kusano |
2b45e8 |
MUL a1, c03, c03
|
|
kusano |
2b45e8 |
MUL a1, c04, c04
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD6 c02, t2, c02
|
|
kusano |
2b45e8 |
ADD5 c03, t3, c03
|
|
kusano |
2b45e8 |
ADD6 c04, t4, c04
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(LT)
|
|
kusano |
2b45e8 |
ST c01, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
ST c02, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
ST c03, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
ST c04, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
ST c01, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
ST c02, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
ST c03, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
ST c04, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
lda C1, -4 * SIZE(C1)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ST c01, 0 * SIZE(C1)
|
|
kusano |
2b45e8 |
ST c02, 1 * SIZE(C1)
|
|
kusano |
2b45e8 |
ST c03, 2 * SIZE(C1)
|
|
kusano |
2b45e8 |
ST c04, 3 * SIZE(C1)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifndef LN
|
|
kusano |
2b45e8 |
lda C1, 4 * SIZE(C1)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RT
|
|
kusano |
2b45e8 |
sll K, ZBASE_SHIFT + 1, TMP1
|
|
kusano |
2b45e8 |
addq AORIG, TMP1, AORIG
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LT) || defined(RN)
|
|
kusano |
2b45e8 |
subq K, KK, TMP1
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT + 1, TMP2
|
|
kusano |
2b45e8 |
addq AO, TMP2, AO
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT, TMP2
|
|
kusano |
2b45e8 |
addq BO, TMP2, BO
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LT
|
|
kusano |
2b45e8 |
addq KK, 2, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
subq KK, 2, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda I, -1(I)
|
|
kusano |
2b45e8 |
bgt I, $L41
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L50:
|
|
kusano |
2b45e8 |
and M, 1, I
|
|
kusano |
2b45e8 |
ble I, $L59
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LT) || defined(RN)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t1
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t2
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t3
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b1, 0 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c01
|
|
kusano |
2b45e8 |
LD b2, 1 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c05
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b3, 2 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c02
|
|
kusano |
2b45e8 |
LD b4, 3 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c06
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda AO, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
lda BO, 2 * SIZE(B)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda L, -2(KK)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ble KK, $L58
|
|
kusano |
2b45e8 |
ble L, $L55
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
sll K, ZBASE_SHIFT, TMP1
|
|
kusano |
2b45e8 |
subq AORIG, TMP1, AORIG
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
sll KK, ZBASE_SHIFT, TMP1
|
|
kusano |
2b45e8 |
addq AORIG, TMP1, AO
|
|
kusano |
2b45e8 |
sll KK, ZBASE_SHIFT, TMP1
|
|
kusano |
2b45e8 |
addq B, TMP1, BO
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
subq K, KK, TMP1
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t1
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t2
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t3
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c01
|
|
kusano |
2b45e8 |
LD b2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c05
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b3, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c02
|
|
kusano |
2b45e8 |
LD b4, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c06
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda AO, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
lda BO, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda L, -2(TMP1)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ble TMP1, $L58
|
|
kusano |
2b45e8 |
ble L, $L55
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
.align 5
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L52:
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a1, b1, t1
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
lda AO, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
MUL a2, b1, t2
|
|
kusano |
2b45e8 |
LD b1, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c05, t3, c05
|
|
kusano |
2b45e8 |
lda L, -2(L)
|
|
kusano |
2b45e8 |
MUL a1, b2, t3
|
|
kusano |
2b45e8 |
LD a1, -2 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c06, t4, c06
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a2, b2, t4
|
|
kusano |
2b45e8 |
LD a2, -1 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
LD b2, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
MUL a3, b3, t1
|
|
kusano |
2b45e8 |
lda BO, 4 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a4, b3, t2
|
|
kusano |
2b45e8 |
LD b3, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c05, t3, c05
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a3, b4, t3
|
|
kusano |
2b45e8 |
LD a3, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c06, t4, c06
|
|
kusano |
2b45e8 |
MUL a4, b4, t4
|
|
kusano |
2b45e8 |
LD b4, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a4, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
bgt L, $L52
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L55:
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
MUL a1, b1, t1
|
|
kusano |
2b45e8 |
#if defined(LT) || defined(RN)
|
|
kusano |
2b45e8 |
blbs KK, $L57
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
blbs TMP1, $L57
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a2, b1, t2
|
|
kusano |
2b45e8 |
LD b1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c05, t3, c05
|
|
kusano |
2b45e8 |
lda BO, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
MUL a1, b2, t3
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c06, t4, c06
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a2, b2, t4
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
LD b2, -1 * SIZE(BO)
|
|
kusano |
2b45e8 |
MUL a1, b1, t1
|
|
kusano |
2b45e8 |
lda AO, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L57:
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
MUL a2, b1, t2
|
|
kusano |
2b45e8 |
ADD4 c05, t3, c05
|
|
kusano |
2b45e8 |
MUL a1, b2, t3
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c06, t4, c06
|
|
kusano |
2b45e8 |
lda AO, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
MUL a2, b2, t4
|
|
kusano |
2b45e8 |
lda BO, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
ADD4 c05, t3, c05
|
|
kusano |
2b45e8 |
ADD2 c06, t4, c06
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD c01, c06, c01
|
|
kusano |
2b45e8 |
ADD c02, c05, c02
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L58:
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(RT)
|
|
kusano |
2b45e8 |
subq KK, 1, TMP1
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT, TMP2
|
|
kusano |
2b45e8 |
addq AORIG, TMP2, AO
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT, TMP2
|
|
kusano |
2b45e8 |
addq B, TMP2, BO
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
lda AO, -2 * SIZE(AO)
|
|
kusano |
2b45e8 |
lda BO, -2 * SIZE(BO)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(LT)
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB a1, c01, c01
|
|
kusano |
2b45e8 |
SUB a2, c02, c02
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB a1, c01, c01
|
|
kusano |
2b45e8 |
SUB a2, c02, c02
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(LT)
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c02, t1
|
|
kusano |
2b45e8 |
MUL a2, c01, t2
|
|
kusano |
2b45e8 |
MUL a1, c01, c01
|
|
kusano |
2b45e8 |
MUL a1, c02, c02
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD6 c02, t2, c02
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(RN) || defined(RT)
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c02, t1
|
|
kusano |
2b45e8 |
MUL a2, c01, t2
|
|
kusano |
2b45e8 |
MUL a1, c01, c01
|
|
kusano |
2b45e8 |
MUL a1, c02, c02
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD6 c02, t2, c02
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(LT)
|
|
kusano |
2b45e8 |
ST c01, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
ST c02, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
ST c01, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
ST c02, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
lda C1, -2 * SIZE(C1)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ST c01, 0 * SIZE(C1)
|
|
kusano |
2b45e8 |
ST c02, 1 * SIZE(C1)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifndef LN
|
|
kusano |
2b45e8 |
lda C1, 2 * SIZE(C1)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RT
|
|
kusano |
2b45e8 |
sll K, ZBASE_SHIFT, TMP1
|
|
kusano |
2b45e8 |
addq AORIG, TMP1, AORIG
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LT) || defined(RN)
|
|
kusano |
2b45e8 |
subq K, KK, TMP1
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT, TMP2
|
|
kusano |
2b45e8 |
addq AO, TMP2, AO
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT, TMP2
|
|
kusano |
2b45e8 |
addq BO, TMP2, BO
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LT
|
|
kusano |
2b45e8 |
addq KK, 1, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
subq KK, 1, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L59:
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
sll K, ZBASE_SHIFT, TMP1
|
|
kusano |
2b45e8 |
addq B, TMP1, B
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LT) || defined(RN)
|
|
kusano |
2b45e8 |
mov BO, B
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RN
|
|
kusano |
2b45e8 |
addq KK, 1, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RT
|
|
kusano |
2b45e8 |
subq KK, 1, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L30:
|
|
kusano |
2b45e8 |
sra N, 1, J
|
|
kusano |
2b45e8 |
ble J, $L999
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L01:
|
|
kusano |
2b45e8 |
#ifdef RT
|
|
kusano |
2b45e8 |
sll K, ZBASE_SHIFT + 1, TMP1
|
|
kusano |
2b45e8 |
subq B, TMP1, B
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
subq C, LDC, C2
|
|
kusano |
2b45e8 |
subq C2, LDC, C1
|
|
kusano |
2b45e8 |
subq C2, LDC, C
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
mov C, C1
|
|
kusano |
2b45e8 |
addq C, LDC, C2
|
|
kusano |
2b45e8 |
addq C2, LDC, C
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
addq M, OFFSET, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LT
|
|
kusano |
2b45e8 |
mov OFFSET, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(RT)
|
|
kusano |
2b45e8 |
mov A, AORIG
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
mov A, AO
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
sra M, 1, I
|
|
kusano |
2b45e8 |
fclr t1
|
|
kusano |
2b45e8 |
fclr t2
|
|
kusano |
2b45e8 |
fclr t3
|
|
kusano |
2b45e8 |
fclr t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
fclr c01
|
|
kusano |
2b45e8 |
fclr c05
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ble I, $L20
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L11:
|
|
kusano |
2b45e8 |
#if defined(LT) || defined(RN)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c09
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c13
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c02
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c06
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b1, 0 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c10
|
|
kusano |
2b45e8 |
LD b2, 1 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c14
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b3, 2 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c03
|
|
kusano |
2b45e8 |
LD b4, 3 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c07
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda BO, 4 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c11
|
|
kusano |
2b45e8 |
lda AO, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c15
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lds $f31, 4 * SIZE(C1)
|
|
kusano |
2b45e8 |
fclr c04
|
|
kusano |
2b45e8 |
lda L, -2(KK)
|
|
kusano |
2b45e8 |
fclr c08
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lds $f31, 4 * SIZE(C2)
|
|
kusano |
2b45e8 |
fclr c12
|
|
kusano |
2b45e8 |
fclr c16
|
|
kusano |
2b45e8 |
ble KK, $L18
|
|
kusano |
2b45e8 |
ble L, $L15
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
sll K, ZBASE_SHIFT + 1, TMP1
|
|
kusano |
2b45e8 |
subq AORIG, TMP1, AORIG
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
sll KK, ZBASE_SHIFT + 1, TMP1
|
|
kusano |
2b45e8 |
addq AORIG, TMP1, AO
|
|
kusano |
2b45e8 |
addq B, TMP1, BO
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
subq K, KK, TMP1
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c09
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c13
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c02
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c06
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c10
|
|
kusano |
2b45e8 |
LD b2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c14
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b3, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c03
|
|
kusano |
2b45e8 |
LD b4, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c07
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda BO, 4 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c11
|
|
kusano |
2b45e8 |
lda AO, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c15
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lds $f31, 4 * SIZE(C1)
|
|
kusano |
2b45e8 |
fclr c04
|
|
kusano |
2b45e8 |
lda L, -2(TMP1)
|
|
kusano |
2b45e8 |
fclr c08
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lds $f31, 4 * SIZE(C2)
|
|
kusano |
2b45e8 |
fclr c12
|
|
kusano |
2b45e8 |
fclr c16
|
|
kusano |
2b45e8 |
ble TMP1, $L18
|
|
kusano |
2b45e8 |
ble L, $L15
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
.align 5
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L12:
|
|
kusano |
2b45e8 |
/* 1 */
|
|
kusano |
2b45e8 |
ADD1 c11, t1, c11
|
|
kusano |
2b45e8 |
#ifndef EV4
|
|
kusano |
2b45e8 |
ldq $31, PREFETCHSIZE * SIZE(AO)
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
MUL b1, a1, t1
|
|
kusano |
2b45e8 |
#ifndef EV4
|
|
kusano |
2b45e8 |
ldl $31, PREFETCHSIZE * SIZE(BO)
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c12, t2, c12
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b1, a2, t2
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c16, t3, c16
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b2, a2, t3
|
|
kusano |
2b45e8 |
LD a5, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c15, t4, c15
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b2, a1, t4
|
|
kusano |
2b45e8 |
LD b5, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
/* 2 */
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
UNOP
|
|
kusano |
2b45e8 |
MUL b1, a3, t1
|
|
kusano |
2b45e8 |
UNOP
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
UNOP
|
|
kusano |
2b45e8 |
MUL b1, a4, t2
|
|
kusano |
2b45e8 |
UNOP
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c06, t3, c06
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b2, a4, t3
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c05, t4, c05
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b4, a1, t4
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
/* 3 */
|
|
kusano |
2b45e8 |
ADD1 c03, t1, c03
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b3, a1, t1
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c04, t2, c04
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b3, a2, t2
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c08, t3, c08
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b4, a2, t3
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c13, t4, c13
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b2, a3, t4
|
|
kusano |
2b45e8 |
LD b2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
/* 4 */
|
|
kusano |
2b45e8 |
ADD1 c09, t1, c09
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b3, a3, t1
|
|
kusano |
2b45e8 |
LD a6, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c10, t2, c10
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b3, a4, t2
|
|
kusano |
2b45e8 |
LD b3, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c14, t3, c14
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b4, a4, t3
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c07, t4, c07
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b4, a3, t4
|
|
kusano |
2b45e8 |
LD b4, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
/* 5 */
|
|
kusano |
2b45e8 |
ADD1 c11, t1, c11
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b5, a5, t1
|
|
kusano |
2b45e8 |
LD a1, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c12, t2, c12
|
|
kusano |
2b45e8 |
lda L, -2(L)
|
|
kusano |
2b45e8 |
MUL b5, a2, t2
|
|
kusano |
2b45e8 |
LD b1, 4 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c16, t3, c16
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b2, a2, t3
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c15, t4, c15
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b2, a5, t4
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
/* 6 */
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b5, a6, t1
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b5, a4, t2
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c06, t3, c06
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b2, a4, t3
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c05, t4, c05
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b4, a5, t4
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
/* 7 */
|
|
kusano |
2b45e8 |
ADD1 c03, t1, c03
|
|
kusano |
2b45e8 |
lda AO, 8 * SIZE(AO)
|
|
kusano |
2b45e8 |
MUL b3, a5, t1
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c04, t2, c04
|
|
kusano |
2b45e8 |
lda BO, 8 * SIZE(BO)
|
|
kusano |
2b45e8 |
MUL b3, a2, t2
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c08, t3, c08
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b4, a2, t3
|
|
kusano |
2b45e8 |
LD a2, -3 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c13, t4, c13
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b2, a6, t4
|
|
kusano |
2b45e8 |
LD b2, -3 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
/* 8 */
|
|
kusano |
2b45e8 |
ADD1 c09, t1, c09
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b3, a6, t1
|
|
kusano |
2b45e8 |
LD a3, -2 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c10, t2, c10
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b3, a4, t2
|
|
kusano |
2b45e8 |
LD b3, -2 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c14, t3, c14
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b4, a4, t3
|
|
kusano |
2b45e8 |
LD a4, -1 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c07, t4, c07
|
|
kusano |
2b45e8 |
MUL b4, a6, t4
|
|
kusano |
2b45e8 |
LD b4, -1 * SIZE(BO)
|
|
kusano |
2b45e8 |
bgt L, $L12
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L15:
|
|
kusano |
2b45e8 |
ADD1 c11, t1, c11
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b1, a1, t1
|
|
kusano |
2b45e8 |
#if defined(LT) || defined(RN)
|
|
kusano |
2b45e8 |
blbs KK, $L17
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
blbs TMP1, $L17
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c12, t2, c12
|
|
kusano |
2b45e8 |
MUL b1, a2, t2
|
|
kusano |
2b45e8 |
ADD2 c16, t3, c16
|
|
kusano |
2b45e8 |
MUL b2, a2, t3
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c15, t4, c15
|
|
kusano |
2b45e8 |
MUL b2, a1, t4
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
MUL b1, a3, t1
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b1, a4, t2
|
|
kusano |
2b45e8 |
LD b1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c06, t3, c06
|
|
kusano |
2b45e8 |
MUL b2, a4, t3
|
|
kusano |
2b45e8 |
ADD4 c05, t4, c05
|
|
kusano |
2b45e8 |
MUL b4, a1, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c03, t1, c03
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b3, a1, t1
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c04, t2, c04
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b3, a2, t2
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c08, t3, c08
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b4, a2, t3
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c13, t4, c13
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b2, a3, t4
|
|
kusano |
2b45e8 |
LD b2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c09, t1, c09
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b3, a3, t1
|
|
kusano |
2b45e8 |
lda AO, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c10, t2, c10
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b3, a4, t2
|
|
kusano |
2b45e8 |
LD b3, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c14, t3, c14
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b4, a4, t3
|
|
kusano |
2b45e8 |
LD a4, -1 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c07, t4, c07
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL b4, a3, t4
|
|
kusano |
2b45e8 |
LD a3, -2 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c11, t1, c11
|
|
kusano |
2b45e8 |
LD b4, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
MUL b1, a1, t1
|
|
kusano |
2b45e8 |
lda BO, 4 * SIZE(BO)
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L17:
|
|
kusano |
2b45e8 |
ADD3 c12, t2, c12
|
|
kusano |
2b45e8 |
MUL b1, a2, t2
|
|
kusano |
2b45e8 |
ADD2 c16, t3, c16
|
|
kusano |
2b45e8 |
MUL b2, a2, t3
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c15, t4, c15
|
|
kusano |
2b45e8 |
MUL b2, a1, t4
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
MUL b1, a3, t1
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
MUL b1, a4, t2
|
|
kusano |
2b45e8 |
ADD2 c06, t3, c06
|
|
kusano |
2b45e8 |
MUL b2, a4, t3
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c05, t4, c05
|
|
kusano |
2b45e8 |
MUL b4, a1, t4
|
|
kusano |
2b45e8 |
ADD1 c03, t1, c03
|
|
kusano |
2b45e8 |
MUL b3, a1, t1
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c04, t2, c04
|
|
kusano |
2b45e8 |
MUL b3, a2, t2
|
|
kusano |
2b45e8 |
ADD2 c08, t3, c08
|
|
kusano |
2b45e8 |
MUL b4, a2, t3
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c13, t4, c13
|
|
kusano |
2b45e8 |
MUL b2, a3, t4
|
|
kusano |
2b45e8 |
ADD1 c09, t1, c09
|
|
kusano |
2b45e8 |
MUL b3, a3, t1
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c10, t2, c10
|
|
kusano |
2b45e8 |
MUL b3, a4, t2
|
|
kusano |
2b45e8 |
ADD2 c14, t3, c14
|
|
kusano |
2b45e8 |
MUL b4, a4, t3
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c07, t4, c07
|
|
kusano |
2b45e8 |
lda AO, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
MUL b4, a3, t4
|
|
kusano |
2b45e8 |
lda BO, 4 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c11, t1, c11
|
|
kusano |
2b45e8 |
ADD3 c12, t2, c12
|
|
kusano |
2b45e8 |
ADD2 c16, t3, c16
|
|
kusano |
2b45e8 |
ADD4 c15, t4, c15
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD c01, c06, c01
|
|
kusano |
2b45e8 |
ADD c02, c05, c02
|
|
kusano |
2b45e8 |
ADD c03, c08, c03
|
|
kusano |
2b45e8 |
ADD c04, c07, c04
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD c09, c14, c09
|
|
kusano |
2b45e8 |
ADD c10, c13, c10
|
|
kusano |
2b45e8 |
ADD c11, c16, c11
|
|
kusano |
2b45e8 |
ADD c12, c15, c12
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L18:
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(RT)
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
subq KK, 2, TMP1
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
subq KK, 2, TMP1
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT + 1, TMP2
|
|
kusano |
2b45e8 |
addq AORIG, TMP2, AO
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT + 1, TMP2
|
|
kusano |
2b45e8 |
addq B, TMP2, BO
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
lda AO, -4 * SIZE(AO)
|
|
kusano |
2b45e8 |
lda BO, -4 * SIZE(BO)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(LT)
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b1, 4 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD b2, 5 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD b3, 6 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD b4, 7 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB a1, c01, c01
|
|
kusano |
2b45e8 |
SUB a2, c02, c02
|
|
kusano |
2b45e8 |
SUB a3, c09, c09
|
|
kusano |
2b45e8 |
SUB a4, c10, c10
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB b1, c03, c03
|
|
kusano |
2b45e8 |
SUB b2, c04, c04
|
|
kusano |
2b45e8 |
SUB b3, c11, c11
|
|
kusano |
2b45e8 |
SUB b4, c12, c12
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b1, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD b2, 5 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD b3, 6 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD b4, 7 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB a1, c01, c01
|
|
kusano |
2b45e8 |
SUB a2, c02, c02
|
|
kusano |
2b45e8 |
SUB a3, c03, c03
|
|
kusano |
2b45e8 |
SUB a4, c04, c04
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB b1, c09, c09
|
|
kusano |
2b45e8 |
SUB b2, c10, c10
|
|
kusano |
2b45e8 |
SUB b3, c11, c11
|
|
kusano |
2b45e8 |
SUB b4, c12, c12
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
LD a1, 6 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a2, 7 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a3, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a4, 5 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c04, t1
|
|
kusano |
2b45e8 |
MUL a2, c03, t2
|
|
kusano |
2b45e8 |
MUL a2, c12, t3
|
|
kusano |
2b45e8 |
MUL a2, c11, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a1, c03, c03
|
|
kusano |
2b45e8 |
MUL a1, c04, c04
|
|
kusano |
2b45e8 |
MUL a1, c11, c11
|
|
kusano |
2b45e8 |
MUL a1, c12, c12
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c03, t1, c03
|
|
kusano |
2b45e8 |
ADD6 c04, t2, c04
|
|
kusano |
2b45e8 |
ADD5 c11, t3, c11
|
|
kusano |
2b45e8 |
ADD6 c12, t4, c12
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a3, c03, t1
|
|
kusano |
2b45e8 |
MUL a3, c04, t2
|
|
kusano |
2b45e8 |
MUL a3, c11, t3
|
|
kusano |
2b45e8 |
MUL a3, c12, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB c01, t1, c01
|
|
kusano |
2b45e8 |
SUB c02, t2, c02
|
|
kusano |
2b45e8 |
SUB c09, t3, c09
|
|
kusano |
2b45e8 |
SUB c10, t4, c10
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a4, c04, t1
|
|
kusano |
2b45e8 |
MUL a4, c03, t2
|
|
kusano |
2b45e8 |
MUL a4, c12, t3
|
|
kusano |
2b45e8 |
MUL a4, c11, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD6 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD5 c02, t2, c02
|
|
kusano |
2b45e8 |
ADD6 c09, t3, c09
|
|
kusano |
2b45e8 |
ADD5 c10, t4, c10
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c02, t1
|
|
kusano |
2b45e8 |
MUL a2, c01, t2
|
|
kusano |
2b45e8 |
MUL a2, c10, t3
|
|
kusano |
2b45e8 |
MUL a2, c09, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a1, c01, c01
|
|
kusano |
2b45e8 |
MUL a1, c02, c02
|
|
kusano |
2b45e8 |
MUL a1, c09, c09
|
|
kusano |
2b45e8 |
MUL a1, c10, c10
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD6 c02, t2, c02
|
|
kusano |
2b45e8 |
ADD5 c09, t3, c09
|
|
kusano |
2b45e8 |
ADD6 c10, t4, c10
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LT
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c02, t1
|
|
kusano |
2b45e8 |
MUL a2, c01, t2
|
|
kusano |
2b45e8 |
MUL a2, c10, t3
|
|
kusano |
2b45e8 |
MUL a2, c09, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a1, c01, c01
|
|
kusano |
2b45e8 |
MUL a1, c02, c02
|
|
kusano |
2b45e8 |
MUL a1, c09, c09
|
|
kusano |
2b45e8 |
MUL a1, c10, c10
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD6 c02, t2, c02
|
|
kusano |
2b45e8 |
ADD5 c09, t3, c09
|
|
kusano |
2b45e8 |
ADD6 c10, t4, c10
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a3, c01, t1
|
|
kusano |
2b45e8 |
MUL a3, c02, t2
|
|
kusano |
2b45e8 |
MUL a3, c09, t3
|
|
kusano |
2b45e8 |
MUL a3, c10, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB c03, t1, c03
|
|
kusano |
2b45e8 |
SUB c04, t2, c04
|
|
kusano |
2b45e8 |
SUB c11, t3, c11
|
|
kusano |
2b45e8 |
SUB c12, t4, c12
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a4, c02, t1
|
|
kusano |
2b45e8 |
MUL a4, c01, t2
|
|
kusano |
2b45e8 |
MUL a4, c10, t3
|
|
kusano |
2b45e8 |
MUL a4, c09, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD6 c03, t1, c03
|
|
kusano |
2b45e8 |
ADD5 c04, t2, c04
|
|
kusano |
2b45e8 |
ADD6 c11, t3, c11
|
|
kusano |
2b45e8 |
ADD5 c12, t4, c12
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 6 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a2, 7 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c04, t1
|
|
kusano |
2b45e8 |
MUL a2, c03, t2
|
|
kusano |
2b45e8 |
MUL a2, c12, t3
|
|
kusano |
2b45e8 |
MUL a2, c11, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a1, c03, c03
|
|
kusano |
2b45e8 |
MUL a1, c04, c04
|
|
kusano |
2b45e8 |
MUL a1, c11, c11
|
|
kusano |
2b45e8 |
MUL a1, c12, c12
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c03, t1, c03
|
|
kusano |
2b45e8 |
ADD6 c04, t2, c04
|
|
kusano |
2b45e8 |
ADD5 c11, t3, c11
|
|
kusano |
2b45e8 |
ADD6 c12, t4, c12
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RN
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c02, t1
|
|
kusano |
2b45e8 |
MUL a2, c01, t2
|
|
kusano |
2b45e8 |
MUL a2, c04, t3
|
|
kusano |
2b45e8 |
MUL a2, c03, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a1, c01, c01
|
|
kusano |
2b45e8 |
MUL a1, c02, c02
|
|
kusano |
2b45e8 |
MUL a1, c03, c03
|
|
kusano |
2b45e8 |
MUL a1, c04, c04
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD6 c02, t2, c02
|
|
kusano |
2b45e8 |
ADD5 c03, t3, c03
|
|
kusano |
2b45e8 |
ADD6 c04, t4, c04
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a3, c01, t1
|
|
kusano |
2b45e8 |
MUL a3, c02, t2
|
|
kusano |
2b45e8 |
MUL a3, c03, t3
|
|
kusano |
2b45e8 |
MUL a3, c04, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB c09, t1, c09
|
|
kusano |
2b45e8 |
SUB c10, t2, c10
|
|
kusano |
2b45e8 |
SUB c11, t3, c11
|
|
kusano |
2b45e8 |
SUB c12, t4, c12
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a4, c02, t1
|
|
kusano |
2b45e8 |
MUL a4, c01, t2
|
|
kusano |
2b45e8 |
MUL a4, c04, t3
|
|
kusano |
2b45e8 |
MUL a4, c03, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD6 c09, t1, c09
|
|
kusano |
2b45e8 |
ADD5 c10, t2, c10
|
|
kusano |
2b45e8 |
ADD6 c11, t3, c11
|
|
kusano |
2b45e8 |
ADD5 c12, t4, c12
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 6 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a2, 7 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c10, t1
|
|
kusano |
2b45e8 |
MUL a2, c09, t2
|
|
kusano |
2b45e8 |
MUL a2, c12, t3
|
|
kusano |
2b45e8 |
MUL a2, c11, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a1, c09, c09
|
|
kusano |
2b45e8 |
MUL a1, c10, c10
|
|
kusano |
2b45e8 |
MUL a1, c11, c11
|
|
kusano |
2b45e8 |
MUL a1, c12, c12
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c09, t1, c09
|
|
kusano |
2b45e8 |
ADD6 c10, t2, c10
|
|
kusano |
2b45e8 |
ADD5 c11, t3, c11
|
|
kusano |
2b45e8 |
ADD6 c12, t4, c12
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RT
|
|
kusano |
2b45e8 |
LD a1, 6 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a2, 7 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a3, 4 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a4, 5 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c10, t1
|
|
kusano |
2b45e8 |
MUL a2, c09, t2
|
|
kusano |
2b45e8 |
MUL a2, c12, t3
|
|
kusano |
2b45e8 |
MUL a2, c11, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a1, c09, c09
|
|
kusano |
2b45e8 |
MUL a1, c10, c10
|
|
kusano |
2b45e8 |
MUL a1, c11, c11
|
|
kusano |
2b45e8 |
MUL a1, c12, c12
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c09, t1, c09
|
|
kusano |
2b45e8 |
ADD6 c10, t2, c10
|
|
kusano |
2b45e8 |
ADD5 c11, t3, c11
|
|
kusano |
2b45e8 |
ADD6 c12, t4, c12
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a3, c09, t1
|
|
kusano |
2b45e8 |
MUL a3, c10, t2
|
|
kusano |
2b45e8 |
MUL a3, c11, t3
|
|
kusano |
2b45e8 |
MUL a3, c12, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB c01, t1, c01
|
|
kusano |
2b45e8 |
SUB c02, t2, c02
|
|
kusano |
2b45e8 |
SUB c03, t3, c03
|
|
kusano |
2b45e8 |
SUB c04, t4, c04
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a4, c10, t1
|
|
kusano |
2b45e8 |
MUL a4, c09, t2
|
|
kusano |
2b45e8 |
MUL a4, c12, t3
|
|
kusano |
2b45e8 |
MUL a4, c11, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD6 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD5 c02, t2, c02
|
|
kusano |
2b45e8 |
ADD6 c03, t3, c03
|
|
kusano |
2b45e8 |
ADD5 c04, t4, c04
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c02, t1
|
|
kusano |
2b45e8 |
MUL a2, c01, t2
|
|
kusano |
2b45e8 |
MUL a2, c04, t3
|
|
kusano |
2b45e8 |
MUL a2, c03, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a1, c01, c01
|
|
kusano |
2b45e8 |
MUL a1, c02, c02
|
|
kusano |
2b45e8 |
MUL a1, c03, c03
|
|
kusano |
2b45e8 |
MUL a1, c04, c04
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD6 c02, t2, c02
|
|
kusano |
2b45e8 |
ADD5 c03, t3, c03
|
|
kusano |
2b45e8 |
ADD6 c04, t4, c04
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(LT)
|
|
kusano |
2b45e8 |
ST c01, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
ST c02, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
ST c09, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
ST c10, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ST c03, 4 * SIZE(BO)
|
|
kusano |
2b45e8 |
ST c04, 5 * SIZE(BO)
|
|
kusano |
2b45e8 |
ST c11, 6 * SIZE(BO)
|
|
kusano |
2b45e8 |
ST c12, 7 * SIZE(BO)
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
ST c01, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
ST c02, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
ST c03, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
ST c04, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ST c09, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
ST c10, 5 * SIZE(AO)
|
|
kusano |
2b45e8 |
ST c11, 6 * SIZE(AO)
|
|
kusano |
2b45e8 |
ST c12, 7 * SIZE(AO)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
lda C1, -4 * SIZE(C1)
|
|
kusano |
2b45e8 |
lda C2, -4 * SIZE(C2)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ST c01, 0 * SIZE(C1)
|
|
kusano |
2b45e8 |
ST c02, 1 * SIZE(C1)
|
|
kusano |
2b45e8 |
ST c03, 2 * SIZE(C1)
|
|
kusano |
2b45e8 |
ST c04, 3 * SIZE(C1)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ST c09, 0 * SIZE(C2)
|
|
kusano |
2b45e8 |
ST c10, 1 * SIZE(C2)
|
|
kusano |
2b45e8 |
ST c11, 2 * SIZE(C2)
|
|
kusano |
2b45e8 |
ST c12, 3 * SIZE(C2)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifndef LN
|
|
kusano |
2b45e8 |
lda C1, 4 * SIZE(C1)
|
|
kusano |
2b45e8 |
lda C2, 4 * SIZE(C2)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
fclr t1
|
|
kusano |
2b45e8 |
fclr t2
|
|
kusano |
2b45e8 |
fclr t3
|
|
kusano |
2b45e8 |
fclr t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RT
|
|
kusano |
2b45e8 |
sll K, ZBASE_SHIFT + 1, TMP1
|
|
kusano |
2b45e8 |
addq AORIG, TMP1, AORIG
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LT) || defined(RN)
|
|
kusano |
2b45e8 |
subq K, KK, TMP1
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT + 1, TMP1
|
|
kusano |
2b45e8 |
addq AO, TMP1, AO
|
|
kusano |
2b45e8 |
addq BO, TMP1, BO
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LT
|
|
kusano |
2b45e8 |
addq KK, 2, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
subq KK, 2, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
fclr c01
|
|
kusano |
2b45e8 |
fclr c05
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda I, -1(I)
|
|
kusano |
2b45e8 |
bgt I, $L11
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L20:
|
|
kusano |
2b45e8 |
and M, 1, I
|
|
kusano |
2b45e8 |
ble I, $L29
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LT) || defined(RN)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c09
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c13
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c02
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c06
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b1, 0 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c10
|
|
kusano |
2b45e8 |
LD b2, 1 * SIZE(B)
|
|
kusano |
2b45e8 |
fclr c14
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b3, 2 * SIZE(B)
|
|
kusano |
2b45e8 |
lda AO, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD b4, 3 * SIZE(B)
|
|
kusano |
2b45e8 |
lda BO, 4 * SIZE(B)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda L, -2(KK)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ble KK, $L28
|
|
kusano |
2b45e8 |
ble L, $L25
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
sll K, ZBASE_SHIFT + 0, TMP1
|
|
kusano |
2b45e8 |
subq AORIG, TMP1, AORIG
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
sll KK, ZBASE_SHIFT + 0, TMP1
|
|
kusano |
2b45e8 |
addq AORIG, TMP1, AO
|
|
kusano |
2b45e8 |
sll KK, ZBASE_SHIFT + 1, TMP1
|
|
kusano |
2b45e8 |
addq B, TMP1, BO
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
subq K, KK, TMP1
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c09
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c13
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c02
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
fclr c06
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c10
|
|
kusano |
2b45e8 |
LD b2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
fclr c14
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD b3, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
lda AO, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD b4, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
lda BO, 4 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda L, -2(TMP1)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ble TMP1, $L28
|
|
kusano |
2b45e8 |
ble L, $L25
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
.align 5
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L22:
|
|
kusano |
2b45e8 |
ADD1 c09, t1, c09
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a1, b1, t1
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c10, t2, c10
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a2, b1, t2
|
|
kusano |
2b45e8 |
LD b1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c13, t3, c13
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a1, b2, t3
|
|
kusano |
2b45e8 |
lda BO, 8 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c14, t4, c14
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a2, b2, t4
|
|
kusano |
2b45e8 |
LD b2, -7 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a1, b3, t1
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a2, b3, t2
|
|
kusano |
2b45e8 |
LD b3, -6 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c05, t3, c05
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a1, b4, t3
|
|
kusano |
2b45e8 |
LD a1, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c06, t4, c06
|
|
kusano |
2b45e8 |
MUL a2, b4, t4
|
|
kusano |
2b45e8 |
LD b5, -5 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c09, t1, c09
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a3, b1, t1
|
|
kusano |
2b45e8 |
LD a2, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c10, t2, c10
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a4, b1, t2
|
|
kusano |
2b45e8 |
LD b1, -4 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c13, t3, c13
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a3, b2, t3
|
|
kusano |
2b45e8 |
lda AO, 4 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c14, t4, c14
|
|
kusano |
2b45e8 |
MUL a4, b2, t4
|
|
kusano |
2b45e8 |
LD b2, -3 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
lda L, -2(L)
|
|
kusano |
2b45e8 |
MUL a3, b3, t1
|
|
kusano |
2b45e8 |
LD b4, -1 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a4, b3, t2
|
|
kusano |
2b45e8 |
LD b3, -2 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c05, t3, c05
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a3, b5, t3
|
|
kusano |
2b45e8 |
LD a3, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c06, t4, c06
|
|
kusano |
2b45e8 |
MUL a4, b5, t4
|
|
kusano |
2b45e8 |
LD a4, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
bgt L, $L22
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L25:
|
|
kusano |
2b45e8 |
ADD1 c09, t1, c09
|
|
kusano |
2b45e8 |
MUL a1, b1, t1
|
|
kusano |
2b45e8 |
#if defined(LT) || defined(RN)
|
|
kusano |
2b45e8 |
blbs KK, $L27
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
blbs TMP1, $L27
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c10, t2, c10
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a2, b1, t2
|
|
kusano |
2b45e8 |
LD b1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c13, t3, c13
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a1, b2, t3
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c14, t4, c14
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a2, b2, t4
|
|
kusano |
2b45e8 |
LD b2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a1, b3, t1
|
|
kusano |
2b45e8 |
lda AO, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a2, b3, t2
|
|
kusano |
2b45e8 |
LD b3, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD4 c05, t3, c05
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a1, b4, t3
|
|
kusano |
2b45e8 |
LD a1, -2 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c06, t4, c06
|
|
kusano |
2b45e8 |
unop
|
|
kusano |
2b45e8 |
MUL a2, b4, t4
|
|
kusano |
2b45e8 |
LD a2, -1 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c09, t1, c09
|
|
kusano |
2b45e8 |
LD b4, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
MUL a1, b1, t1
|
|
kusano |
2b45e8 |
lda BO, 4 * SIZE(BO)
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L27:
|
|
kusano |
2b45e8 |
ADD3 c10, t2, c10
|
|
kusano |
2b45e8 |
MUL a2, b1, t2
|
|
kusano |
2b45e8 |
ADD4 c13, t3, c13
|
|
kusano |
2b45e8 |
MUL a1, b2, t3
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c14, t4, c14
|
|
kusano |
2b45e8 |
MUL a2, b2, t4
|
|
kusano |
2b45e8 |
ADD1 c01, t1, c01
|
|
kusano |
2b45e8 |
MUL a1, b3, t1
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD3 c02, t2, c02
|
|
kusano |
2b45e8 |
MUL a2, b3, t2
|
|
kusano |
2b45e8 |
ADD4 c05, t3, c05
|
|
kusano |
2b45e8 |
MUL a1, b4, t3
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD2 c06, t4, c06
|
|
kusano |
2b45e8 |
lda AO, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
MUL a2, b4, t4
|
|
kusano |
2b45e8 |
lda BO, 4 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD1 c09, t1, c09
|
|
kusano |
2b45e8 |
ADD3 c10, t2, c10
|
|
kusano |
2b45e8 |
ADD4 c13, t3, c13
|
|
kusano |
2b45e8 |
ADD2 c14, t4, c14
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD c01, c06, c01
|
|
kusano |
2b45e8 |
ADD c02, c05, c02
|
|
kusano |
2b45e8 |
ADD c09, c14, c09
|
|
kusano |
2b45e8 |
ADD c10, c13, c10
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L28:
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(RT)
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
subq KK, 1, TMP1
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
subq KK, 2, TMP1
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT + 0, TMP2
|
|
kusano |
2b45e8 |
addq AORIG, TMP2, AO
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT + 1, TMP2
|
|
kusano |
2b45e8 |
addq B, TMP2, BO
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
lda AO, -2 * SIZE(AO)
|
|
kusano |
2b45e8 |
lda BO, -4 * SIZE(BO)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(LT)
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB a1, c01, c01
|
|
kusano |
2b45e8 |
SUB a2, c02, c02
|
|
kusano |
2b45e8 |
SUB a3, c09, c09
|
|
kusano |
2b45e8 |
SUB a4, c10, c10
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
SUB a1, c01, c01
|
|
kusano |
2b45e8 |
SUB a2, c02, c02
|
|
kusano |
2b45e8 |
SUB a3, c09, c09
|
|
kusano |
2b45e8 |
SUB a4, c10, c10
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(LT)
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c02, t1
|
|
kusano |
2b45e8 |
MUL a2, c01, t2
|
|
kusano |
2b45e8 |
MUL a2, c10, t3
|
|
kusano |
2b45e8 |
MUL a2, c09, t4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a1, c01, c01
|
|
kusano |
2b45e8 |
MUL a1, c02, c02
|
|
kusano |
2b45e8 |
MUL a1, c09, c09
|
|
kusano |
2b45e8 |
MUL a1, c10, c10
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD6 c02, t2, c02
|
|
kusano |
2b45e8 |
ADD5 c09, t3, c09
|
|
kusano |
2b45e8 |
ADD6 c10, t4, c10
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RN
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a3, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a4, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c02, t1
|
|
kusano |
2b45e8 |
MUL a2, c01, t2
|
|
kusano |
2b45e8 |
MUL a1, c01, c01
|
|
kusano |
2b45e8 |
MUL a1, c02, c02
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD6 c02, t2, c02
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a3, c01, t1
|
|
kusano |
2b45e8 |
MUL a3, c02, t2
|
|
kusano |
2b45e8 |
SUB c09, t1, c09
|
|
kusano |
2b45e8 |
SUB c10, t2, c10
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a4, c02, t1
|
|
kusano |
2b45e8 |
MUL a4, c01, t2
|
|
kusano |
2b45e8 |
ADD6 c09, t1, c09
|
|
kusano |
2b45e8 |
ADD5 c10, t2, c10
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 6 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a2, 7 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c10, t1
|
|
kusano |
2b45e8 |
MUL a2, c09, t2
|
|
kusano |
2b45e8 |
MUL a1, c09, c09
|
|
kusano |
2b45e8 |
MUL a1, c10, c10
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c09, t1, c09
|
|
kusano |
2b45e8 |
ADD6 c10, t2, c10
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RT
|
|
kusano |
2b45e8 |
LD a1, 6 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a2, 7 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a3, 4 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a4, 5 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c10, t1
|
|
kusano |
2b45e8 |
MUL a2, c09, t2
|
|
kusano |
2b45e8 |
MUL a1, c09, c09
|
|
kusano |
2b45e8 |
MUL a1, c10, c10
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c09, t1, c09
|
|
kusano |
2b45e8 |
ADD6 c10, t2, c10
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a3, c09, t1
|
|
kusano |
2b45e8 |
MUL a3, c10, t2
|
|
kusano |
2b45e8 |
SUB c01, t1, c01
|
|
kusano |
2b45e8 |
SUB c02, t2, c02
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a4, c10, t1
|
|
kusano |
2b45e8 |
MUL a4, c09, t2
|
|
kusano |
2b45e8 |
ADD6 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD5 c02, t2, c02
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
LD a1, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
LD a2, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
MUL a2, c02, t1
|
|
kusano |
2b45e8 |
MUL a2, c01, t2
|
|
kusano |
2b45e8 |
MUL a1, c01, c01
|
|
kusano |
2b45e8 |
MUL a1, c02, c02
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ADD5 c01, t1, c01
|
|
kusano |
2b45e8 |
ADD6 c02, t2, c02
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LN) || defined(LT)
|
|
kusano |
2b45e8 |
ST c01, 0 * SIZE(BO)
|
|
kusano |
2b45e8 |
ST c02, 1 * SIZE(BO)
|
|
kusano |
2b45e8 |
ST c09, 2 * SIZE(BO)
|
|
kusano |
2b45e8 |
ST c10, 3 * SIZE(BO)
|
|
kusano |
2b45e8 |
#else
|
|
kusano |
2b45e8 |
ST c01, 0 * SIZE(AO)
|
|
kusano |
2b45e8 |
ST c02, 1 * SIZE(AO)
|
|
kusano |
2b45e8 |
ST c09, 2 * SIZE(AO)
|
|
kusano |
2b45e8 |
ST c10, 3 * SIZE(AO)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
lda C1, -2 * SIZE(C1)
|
|
kusano |
2b45e8 |
lda C2, -2 * SIZE(C2)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
ST c01, 0 * SIZE(C1)
|
|
kusano |
2b45e8 |
ST c02, 1 * SIZE(C1)
|
|
kusano |
2b45e8 |
ST c09, 0 * SIZE(C2)
|
|
kusano |
2b45e8 |
ST c10, 1 * SIZE(C2)
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifndef LN
|
|
kusano |
2b45e8 |
lda C1, 2 * SIZE(C1)
|
|
kusano |
2b45e8 |
lda C2, 2 * SIZE(C2)
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RT
|
|
kusano |
2b45e8 |
sll K, ZBASE_SHIFT, TMP1
|
|
kusano |
2b45e8 |
addq AORIG, TMP1, AORIG
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LT) || defined(RN)
|
|
kusano |
2b45e8 |
subq K, KK, TMP1
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT + 0, TMP2
|
|
kusano |
2b45e8 |
addq AO, TMP2, AO
|
|
kusano |
2b45e8 |
sll TMP1, ZBASE_SHIFT + 1, TMP2
|
|
kusano |
2b45e8 |
addq BO, TMP2, BO
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LT
|
|
kusano |
2b45e8 |
addq KK, 1, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
subq KK, 1, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L29:
|
|
kusano |
2b45e8 |
#ifdef LN
|
|
kusano |
2b45e8 |
sll K, ZBASE_SHIFT + 1, TMP1
|
|
kusano |
2b45e8 |
addq B, TMP1, B
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#if defined(LT) || defined(RN)
|
|
kusano |
2b45e8 |
mov BO, B
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RN
|
|
kusano |
2b45e8 |
addq KK, 2, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
#ifdef RT
|
|
kusano |
2b45e8 |
subq KK, 2, KK
|
|
kusano |
2b45e8 |
#endif
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
lda J, -1(J)
|
|
kusano |
2b45e8 |
bgt J, $L01
|
|
kusano |
2b45e8 |
.align 4
|
|
kusano |
2b45e8 |
|
|
kusano |
2b45e8 |
$L999:
|
|
kusano |
2b45e8 |
ldt $f2, 0($sp)
|
|
kusano |
2b45e8 |
ldt $f3, 8($sp)
|
|
kusano |
2b45e8 |
ldt $f4, 16($sp)
|
|
kusano |
2b45e8 |
ldt $f5, 24($sp)
|
|
kusano |
2b45e8 |
ldt $f6, 32($sp)
|
|
kusano |
2b45e8 |
ldt $f7, 40($sp)
|
|
kusano |
2b45e8 |
ldt $f8, 48($sp)
|
|
kusano |
2b45e8 |
ldt $f9, 56($sp)
|
|
kusano |
2b45e8 |
clr $0
|
|
kusano |
2b45e8 |
lda $sp, STACKSIZE($sp)
|
|
kusano |
2b45e8 |
ret
|
|
kusano |
2b45e8 |
.ident VERSION
|
|
kusano |
2b45e8 |
.end CNAME
|