Programming tools for your new processor
Compiler Produced FFT optimized code
; Archelon URCC C 3.17 2003/09/19 MCSYS = ucode
; - fft.c at Wed Sep 24 15:22:18 2003
; struct complex { float rp, ip; } ;
; struct complex z[ 256 +1], w[ 256 +1],
; e[ 129 +1];
; float zr, zi;
; extern int seed;
; float Cos (x) float x;
.segment fft_code,memtype=0,locinc=1,rom
.global _Cos
_Cos:
addi_l R31,0x4,R31
strri_l R30,R31,-0x4
mov_l R31,R30
addi_l R31,0x8,R31
strri_l R0,R30,0x0
strri_l R1,R30,0x4
; ENTRY
cvtdf R24,R1
; x at argloc 0 (0x0) in reg size 4
; i in reg size 2
; factor in reg size 2
; result in reg size 4
; power in reg size 4
; .otmp0 in reg size 4
; .otmp1 in reg size 2
; .otmp2 in reg size 2
; .otmp3 in reg size 2
; .otmp4 in reg size 2
; .otmp5 in reg size 4
; .otmp6 in reg size 4
; .otmp7 in reg size 4
; .otmp8 in reg size 4
; .otmp9 in reg size 4
; .otmp10 in reg size 4
; {
; int i, factor;
; float result,power;
; result = 1.0; factor = 1; power = x;
; for ( i = 2; i <= 10; i++ ) {
; factor = factor * i; power = power*x;
; if ( (i & 1) == 0 ) {
; .otmp11 in reg size 2
; if ( (i & 3) == 0 ) result = result + power/factor;
; }
; }
; return (result);
; else result = result - power/factor;
ldzi_f __fconsf1,R24
movi_w 0x1,R26
movi_w 0x2,R25
mov_f R1,R27
Cos_L1:
mul_w R26,R25,R26
mul_f R27,R1,R27
andi_w R25,0x1,R0
cmpi_w R0,0x0
bne Cos_L4
andi_w R25,0x3,R0
cmpi_w R0,0x0
bne Cos_L3
cvtwf R26,R0
div_f R27,R0,R0
add_f R0,R24,R24
Cos_L4:
addi_w R25,0x1,R25
cmpi_w R25,0xa
ble Cos_L1
br Cos_L5
Cos_L3:
cvtwf R26,R0
div_f R27,R0,R0
sub_f R24,R0,R24
br Cos_L4
Cos_L5:
; EXIT
; .temp0 at stkloc 0 (0x0) size 8
ldri_l R30,0x0,R0
ldri_l R30,0x4,R1
mov_l R30,R31
ldri_l R31,-0x4,R30
subi_l R31,0x4,R31
ret
; }
; int Min0( arg1, arg2) int arg1, arg2;
.global _Min0
_Min0:
addi_l R31,0x4,R31
strri_l R30,R31,-0x4
mov_l R31,R30
; ENTRY
; arg1 at argloc 0 (0x0) in reg size 2
; arg2 at argloc 0 (0x0) in reg size 2
; .otmp12 in reg size 2
; .otmp13 in reg size 2
; {
; if ( arg1 < arg2 )
; return (arg1);
; else
; return (arg2);
cmp_w R24,R25
bge Min0_L1
br Min0_L2
Min0_L1:
mov_l R25,R24
Min0_L2:
; EXIT
mov_l R30,R31
ldri_l R31,-0x4,R30
subi_l R31,0x4,R31
ret
; }
; void
; Printcomplex( arg1, arg2, zarray, start, finish, increment)
; int arg1, arg2, start, finish, increment;
; struct complex zarray[];
.global _Printcomplex
_Printcomplex:
addi_l R31,0x4,R31
strri_l R30,R31,-0x4
mov_l R31,R30
addi_l R31,0x24,R31
strri_l R0,R30,0x0
strri_l R1,R30,0x4
strri_l R2,R30,0x8
strri_l R3,R30,0xc
strri_l R4,R30,0x10
strri_l R5,R30,0x14
strri_l R6,R30,0x18
strri_l R7,R30,0x1c
strri_l R28,R30,0x20
; ENTRY
mov_l R26,R5
; zarray at argloc 0 (0x0) in reg size 4
mov_w R27,R2
; start at argloc 0 (0x0) in reg size 2
; finish at argloc -6 (0xfffffffa) size 2
ldri_w R30,-0x8,R4
; increment at argloc -8 (0xfffffff8) in reg size 2
; i in reg size 2
; .otmp14 in reg size 4
; .otmp15 in reg size 4
; .otmp16 in reg size 4
; .otmp17 in reg size 4
; .otmp18 in reg size 2
; .otmp19 in reg size 2
; .otmp20 in reg size 2
; .otmp21 in reg size 4
; .otmp22 in reg size 4
; .otmp23 in reg size 4
; .otmp24 in reg size 4
; .otmp25 in reg size 4
; {
; int i;
; printf("\n") ;
; i = start;
; .otmp26 in reg size 2
; do {
; .otmp27 in reg size 4
; .otmp28 in reg size 4
; printf(" %15.3e%15.3e",zarray[i].rp,zarray[i].ip) ;
; i = i + increment;
; .otmp29 in reg size 2
; printf(" %15.3e%15.3e",zarray[i].rp,zarray[i].ip) ;
; .otmp30 in reg size 4
; .otmp31 in reg size 4
; printf("\n");
; i = i + increment ;
; .otmp32 in reg size 2
; .otmp33 in reg size 2
; .otmp34 in reg size 4
; .otmp35 in reg size 4
; .otmp36 in reg size 4
; } while ( i <= finish );
ldzi_l __pcons1,R24
call _printf
cvtswl R2,R1
cvtswl R4,R6
llsi_l R1,0x3,R24
llsi_l R6,0x3,R7
add_l R24,R5,R0
addi_l R0,0x4,R3
Printcomplex_L2:
addi_l R31,0x8,R31
ldzi_l __pcons2,R24
ldri_f R0,0x0,R25
cvtfd R25,R25
ldri_f R3,0x0,R27
cvtfd R27,R27
strri_d R27,R31,-0x8
call _printf
subi_l R31,0x8,R31
add_w R2,R4,R2
add_l R1,R6,R1
add_l R0,R7,R0
add_l R3,R7,R3
llsi_l R1,0x3,R24
add_l R24,R5,R27
addi_l R31,0x8,R31
ldzi_l __pcons2,R24
ldri_f R27,0x0,R25
cvtfd R25,R25
ldri_f R27,0x4,R27
cvtfd R27,R27
strri_d R27,R31,-0x8
call _printf
subi_l R31,0x8,R31
ldzi_l __pcons1,R24
call _printf
add_w R2,R4,R2
add_l R1,R6,R1
add_l R0,R7,R0
add_l R3,R7,R3
ldri_w R30,-0x6,R24
cmp_w R2,R24
ble Printcomplex_L2
; EXIT
; .temp1 at stkloc 0 (0x0) size 36
ldri_l R30,0x0,R0
ldri_l R30,0x4,R1
ldri_l R30,0x8,R2
ldri_l R30,0xc,R3
ldri_l R30,0x10,R4
ldri_l R30,0x14,R5
ldri_l R30,0x18,R6
ldri_l R30,0x1c,R7
ldri_l R30,0x20,R28
mov_l R30,R31
ldri_l R31,-0x4,R30
subi_l R31,0x4,R31
ret
; }
; ****** Warning: Symbol ``arg1'' (function Printcomplex) was defined, but not used
; ****** Warning: Symbol ``arg2'' (function Printcomplex) was defined, but not used
; void
; Uniform11(iy, yfl) int iy; float yfl;
.global _Uniform11
_Uniform11:
addi_l R31,0x4,R31
strri_l R30,R31,-0x4
mov_l R31,R30
; ENTRY
; iy at argloc 0 (0x0) in reg size 2
cvtdf R25,R24
; yfl at argloc 0 (0x0) in reg size 4
; {
; iy = (4855*iy + 1731) & 8191;
; yfl = iy/8192.0;
; EXIT
mov_l R30,R31
ldri_l R31,-0x4,R30
subi_l R31,0x4,R31
ret
; }
; void
; Exptab(n, e) int n; struct complex e[];
.global _Exptab
_Exptab:
addi_l R31,0x4,R31
strri_l R30,R31,-0x4
mov_l R31,R30
addi_l R31,0x98,R31
strri_l R0,R30,0x68
strri_l R1,R30,0x6c
strri_l R2,R30,0x70
strri_l R3,R30,0x74
strri_l R4,R30,0x78
strri_l R5,R30,0x7c
strri_l R6,R30,0x80
strri_l R7,R30,0x84
strri_l R8,R30,0x88
strri_l R9,R30,0x8c
strri_l R10,R30,0x90
strri_l R11,R30,0x94
; ENTRY
mov_w R24,R2
; n at argloc 0 (0x0) in reg size 2
mov_l R25,R3
; e at argloc 0 (0x0) in reg size 4
; theta in reg size 4
; divisor in reg size 4
; h at stkloc 0 (0x0) size 104
; i in reg size 2
; j in reg size 2
; k in reg size 2
; l in reg size 2
; m in reg size 2
; .otmp37 in reg size 4
; .otmp38 in reg size 4
; .otmp39 in reg size 4
; .otmp40 in reg size 4
; .otmp41 in reg size 4
; .otmp42 in reg size 4
; .otmp43 in reg size 4
; .otmp44 in reg size 2
; .otmp45 in reg size 2
; .otmp46 in reg size 4
; .otmp47 in reg size 4
; .otmp48 in reg size 2
; .otmp49 in reg size 4
; .otmp50 in reg size 4
; .otmp51 in reg size 4
; .otmp52 in reg size 4
; .otmp53 in reg size 4
; .otmp54 in reg size 4
; .otmp55 in reg size 4
; .otmp56 in reg size 4
; .otmp57 in reg size 4
; .otmp58 in reg size 4
; .otmp59 in reg size 2
; .otmp60 in reg size 2
; .otmp61 in reg size 2
; .otmp62 in reg size 2
; .otmp63 in reg size 4
; {
; float theta, divisor, h[26];
; int i, j, k, l, m;
; theta = 3.1415926536;
; divisor = 4.0;
; for ( i=1; i <= 25; i++ )
; {
; h[i] = 1/(2*Cos( theta/divisor ));
; divisor = divisor + divisor;
; }
; m = n / 2 ;
; l = m / 2 ;
; j = 1 ;
; e[1].rp = 1.0 ;
; e[1].ip = 0.0;
; e[l+1].rp = 0.0;
; e[l+1].ip = 1.0 ;
; e[m+1].rp = -1.0 ;
; e[m+1].ip = 0.0 ;
; do {
; i = l / 2 ;
; k = i ;
; do {
; .otmp64 in reg size 2
; .otmp65 in reg size 2
; .otmp66 in reg size 2
; .otmp67 in reg size 4
; .otmp68 in reg size 4
; .otmp69 in reg size 4
; .otmp70 in reg size 4
; .otmp71 in reg size 4
; e[k+1].rp = h[j]*(e[k+i+1].rp+e[k-i+1].rp) ;
; e[k+1].ip = h[j]*(e[k+i+1].ip+e[k-i+1].ip) ;
; k = k+l ;
; .otmp72 in reg size 4
; .otmp73 in reg size 4
; .otmp74 in reg size 4
; .otmp75 in reg size 4
; .otmp76 in reg size 4
; } while ( k <= m );
; j = Min0( j+1, 25);
; l = i ;
; } while ( l > 1 );
ldzi_f __fcons5,R1
addi_l R30,0x4,R0
Exptab_L1:
ldzi_f __fcons6,R24
div_f R24,R1,R24
cvtfd R24,R24
call _Cos
ldzi_f __fconsf2,R25
mul_f R24,R25,R25
ldzi_f __fconsf1,R24
div_f R24,R25,R24
strri_f R24,R0,0x0
add_f R1,R1,R1
addi_l R0,0x4,R0
addi_l R30,0x64,R24
cmp_l R0,R24
ble Exptab_L1
divi_w R2,0x2,R4
divi_w R4,0x2,R1
movi_w 0x1,R24
ldzi_f __fconsf1,R25
strri_f R25,R3,0x8
ldzi_f __fconsf0,R25
strri_f R25,R3,0xc
addi_w R1,0x1,R25
cvtswl R25,R25
llsi_l R25,0x3,R25
add_l R25,R3,R26
ldzi_f __fconsf0,R25
strri_f R25,R26,0x0
ldzi_f __fconsf1,R25
strri_f R25,R26,0x4
addi_w R4,0x1,R25
cvtswl R25,R25
llsi_l R25,0x3,R25
add_l R25,R3,R25
ldzi_f __fcons4,R26
strri_f R26,R25,0x0
ldzi_f __fconsf0,R26
strri_f R26,R25,0x4
Exptab_L3:
divi_w R1,0x2,R10
cvtswl R24,R25
llsi_l R25,0x2,R25
add_l R30,R25,R6
addi_w R10,0x1,R25
add_w R10,R10,R26
sub_w R4,R10,R27
addi_w R27,0x1,R27
sub_w R10,R10,R0
addi_w R0,0x1,R0
cvtswl R0,R0
llsi_l R0,0x3,R0
cvtswl R1,R1
llsi_l R1,0x3,R9
llsi_l R27,0x3,R27
add_l R0,R3,R2
add_l R27,R3,R11
addi_l R2,0x4,R0
addi_w R26,0x1,R26
cvtswl R26,R26
llsi_l R26,0x3,R26
add_l R26,R3,R26
addi_l R26,0x4,R27
cvtswl R25,R25
llsi_l R25,0x3,R25
add_l R25,R3,R25
addi_l R25,0x4,R1
Exptab_L5:
ldri_f R6,0x0,R7
ldri_f R2,0x0,R8
ldri_f R26,0x0,R5
add_f R5,R8,R5
mul_f R7,R5,R5
strri_f R5,R25,0x0
ldri_f R0,0x0,R8
ldri_f R27,0x0,R5
add_f R5,R8,R5
mul_f R7,R5,R5
strri_f R5,R1,0x0
add_l R2,R9,R2
add_l R0,R9,R0
add_l R26,R9,R26
add_l R27,R9,R27
add_l R25,R9,R25
add_l R1,R9,R1
cmp_l R2,R11
ble Exptab_L5
addi_w R24,0x1,R24
movi_w 0x19,R25
call _Min0
mov_w R10,R1
cmpi_w R10,0x1
bgt Exptab_L3
; EXIT
; .temp2 at stkloc 104 (0x68) size 48
ldri_l R30,0x68,R0
ldri_l R30,0x6c,R1
ldri_l R30,0x70,R2
ldri_l R30,0x74,R3
ldri_l R30,0x78,R4
ldri_l R30,0x7c,R5
ldri_l R30,0x80,R6
ldri_l R30,0x84,R7
ldri_l R30,0x88,R8
ldri_l R30,0x8c,R9
ldri_l R30,0x90,R10
ldri_l R30,0x94,R11
mov_l R30,R31
ldri_l R31,-0x4,R30
subi_l R31,0x4,R31
ret
; }
; void
; Fft( n, z, w, e, sqrinv)
; int n; struct complex z[], w[]; struct complex e[]; float sqrinv;
.global _Fft
_Fft:
addi_l R31,0x4,R31
strri_l R30,R31,-0x4
mov_l R31,R30
addi_l R31,0x44,R31
strri_l R0,R30,0x0
strri_l R1,R30,0x4
strri_l R2,R30,0x8
strri_l R3,R30,0xc
strri_l R4,R30,0x10
strri_l R5,R30,0x14
strri_l R6,R30,0x18
strri_l R7,R30,0x1c
strri_l R8,R30,0x20
strri_l R9,R30,0x24
strri_l R10,R30,0x28
strri_l R11,R30,0x2c
strri_l R12,R30,0x30
strri_l R13,R30,0x34
strri_l R14,R30,0x38
strri_l R15,R30,0x3c
strri_l R16,R30,0x40
; ENTRY
; n at argloc 0 (0x0) in reg size 2
; z at argloc 0 (0x0) in reg size 4
; w at argloc 0 (0x0) in reg size 4
; e at argloc 0 (0x0) in reg size 4
ldri_d R30,-0xc,R0
cvtdf R0,R8
; sqrinv at argloc -12 (0xfffffff4) in reg size 4
; i in reg size 2
; j in reg size 2
; k in reg size 2
; l in reg size 2
; m in reg size 2
; index in reg size 2
; .otmp77 in reg size 4
; .otmp78 in reg size 4
; .otmp79 in reg size 4
; .otmp80 in reg size 4
; .otmp81 in reg size 2
; .otmp82 in reg size 2
; .otmp83 in reg size 2
; .otmp84 in reg size 2
; .otmp85 in reg size 2
; .otmp86 in reg size 2
; .otmp87 in reg size 2
; .otmp88 in reg size 2
; .otmp89 in reg size 4
; .otmp90 in reg size 4
; .otmp91 in reg size 4
; .otmp92 in reg size 4
; .otmp93 in reg size 4
; .otmp94 in reg size 4
; .otmp95 in reg size 4
; .otmp96 in reg size 4
; .otmp97 in reg size 4
; .otmp98 in reg size 4
; .otmp99 in reg size 4
; .otmp100 in reg size 4
; .otmp101 in reg size 2
; .otmp102 in reg size 4
; .otmp103 in reg size 4
; .otmp104 in reg size 4
; .otmp105 in reg size 4
; .otmp106 in reg size 4
; .otmp107 in reg size 4
; .otmp108 in reg size 4
; .otmp109 in reg size 4
; .otmp110 in reg size 4
; .otmp111 in reg size 4
; .otmp112 in reg size 4
; .otmp113 in reg size 4
; .otmp114 in reg size 4
; .otmp115 in reg size 4
; .otmp116 in reg size 4
; .otmp117 in reg size 2
; .otmp118 in reg size 4
; {
; int i, j, k, l, m, index;
; m = n / 2 ;
; l = 1 ;
; do {
; k = 0 ;
; j = l ;
; i = 1 ;
; do {
; .otmp119 in reg size 4
; .otmp120 in reg size 4
; do {
; w[i+k].rp = z[i].rp+z[m+i].rp ;
; w[i+k].ip = z[i].ip+z[m+i].ip ;
; .otmp121 in reg size 4
; w[i+j].rp = e[k+1].rp*(z[i].rp-z[i+m].rp)
; .otmp122 in reg size 4
; -e[k+1].ip*(z[i].ip-z[i+m].ip) ;
; w[i+j].ip = e[k+1].rp*(z[i].ip-z[i+m].ip)
; +e[k+1].ip*(z[i].rp-z[i+m].rp) ;
; i = i+1 ;
; } while ( i <= j );
; k = j ;
; j = k+l ;
; } while ( j <= m );
; index = 1;
; do {
; .otmp123 in reg size 4
; .otmp124 in reg size 4
; z[index] = w[index];
; index = index+1;
; .otmp125 in reg size 4
; } while ( index <= n );
; l = l+l ;
; } while ( l <= m );
; for ( i = 1; i <= n; i++ )
; .otmp126 in reg size 4
; {
; z[i].rp = sqrinv*z[i].rp ;
; z[i].ip = -sqrinv*z[i].ip;
; .otmp127 in reg size 4
; }
divi_w R24,0x2,R11
movi_w 0x1,R5
Fft_L2:
movi_w 0x0,R7
movi_w 0x1,R4
addi_w R11,0x1,R0
cvtswl R0,R0
llsi_l R0,0x3,R0
add_l R0,R25,R2
addi_l R2,0x4,R1
movi_l 0x8,R0
add_l R0,R25,R3
addi_l R3,0x4,R0
mov_w R5,R6
Fft_L4:
add_w R4,R7,R9
cvtswl R9,R9
llsi_l R9,0x3,R9
add_l R9,R26,R12
ldri_f R3,0x0,R13
ldri_f R2,0x0,R10
add_f R13,R10,R9
strri_f R9,R12,0x0
addi_l R12,0x4,R12
ldri_f R0,0x0,R15
ldri_f R1,0x0,R9
add_f R15,R9,R14
strri_f R14,R12,0x0
add_w R4,R6,R12
cvtswl R12,R12
llsi_l R12,0x3,R12
add_l R12,R26,R16
addi_w R7,0x1,R12
cvtswl R12,R12
llsi_l R12,0x3,R12
add_l R12,R27,R14
ldri_f R14,0x0,R12
sub_f R13,R10,R10
mul_f R12,R10,R13
ldri_f R14,0x4,R14
sub_f R15,R9,R15
mul_f R14,R15,R9
sub_f R13,R9,R9
strri_f R9,R16,0x0
mul_f R14,R10,R9
mul_f R12,R15,R10
add_f R10,R9,R9
strri_f R9,R16,0x4
addi_w R4,0x1,R4
addi_l R2,0x8,R2
addi_l R1,0x8,R1
addi_l R3,0x8,R3
addi_l R0,0x8,R0
cmp_w R4,R6
ble Fft_L4
add_w R6,R5,R9
cmp_w R9,R11
mov_l R6,R7
mov_l R9,R6
ble Fft_L4
llsi_l R24,0x3,R2
movi_l 0x8,R0
add_l R0,R25,R0
movi_l 0x8,R1
add_l R1,R26,R1
add_l R2,R26,R3
Fft_L8:
ldri_d R1,0x0,R6
strri_d R6,R0,0x0
addi_l R1,0x8,R1
addi_l R0,0x8,R0
cmp_l R1,R3
ble Fft_L8
add_w R5,R5,R5
cmp_w R5,R11
ble Fft_L2
movi_w 0x1,R26
cmp_w R26,R24
bgt Fft_L9
neg_f R8,R26
movi_l 0x8,R24
add_l R24,R25,R24
add_l R2,R25,R27
addi_l R24,0x4,R25
Fft_L10:
ldri_f R24,0x0,R0
mul_f R0,R8,R0
strri_f R0,R24,0x0
ldri_f R25,0x0,R0
mul_f R26,R0,R0
strri_f R0,R25,0x0
addi_l R24,0x8,R24
addi_l R25,0x8,R25
cmp_l R24,R27
ble Fft_L10
Fft_L9:
; EXIT
; .temp3 at stkloc 0 (0x0) size 68
ldri_l R30,0x0,R0
ldri_l R30,0x4,R1
ldri_l R30,0x8,R2
ldri_l R30,0xc,R3
ldri_l R30,0x10,R4
ldri_l R30,0x14,R5
ldri_l R30,0x18,R6
ldri_l R30,0x1c,R7
ldri_l R30,0x20,R8
ldri_l R30,0x24,R9
ldri_l R30,0x28,R10
ldri_l R30,0x2c,R11
ldri_l R30,0x30,R12
ldri_l R30,0x34,R13
ldri_l R30,0x38,R14
ldri_l R30,0x3c,R15
ldri_l R30,0x40,R16
mov_l R30,R31
ldri_l R31,-0x4,R30
subi_l R31,0x4,R31
ret
; }
; void
; Oscar()
.global _Oscar
_Oscar:
addi_l R31,0x4,R31
strri_l R30,R31,-0x4
mov_l R31,R30
addi_l R31,0xc,R31
strri_l R0,R30,0x0
strri_l R1,R30,0x4
strri_l R2,R30,0x8
; ENTRY
; i in reg size 2
; .otmp128 in reg size 4
; .otmp129 in reg size 4
; .otmp130 in reg size 2
; .otmp131 in reg size 2
; .otmp132 in reg size 2
; .otmp133 in reg size 4
; {
; int i;
; Exptab( 256 ,e) ;
; seed = 5767 ;
; for ( i = 1; i <= 256 ; i++ )
; {
; Uniform11( seed, zr );
; Uniform11( seed, zi );
; z[i].rp = 20.0*zr - 10.0;
; z[i].ip = 20.0*zi - 10.0;
; .otmp134 in reg size 4
; }
; for ( i = 1; i <= 20; i++ ) {
; Fft( 256 ,z,w,e,0.0625) ;
; }
movi_w 0x100,R24
ldzi_l __pcons10,R25
call _Exptab
stizi_w 0x1687,_seed
ldzi_l __pcons11,R0
ldzi_l __pcons12,R1
Oscar_L1:
ldzi_w _seed,R24
ldzi_f _zr,R25
cvtfd R25,R25
call _Uniform11
ldzi_w _seed,R24
ldzi_f _zi,R25
cvtfd R25,R25
call _Uniform11
ldzi_f _zr,R24
cvtfd R24,R26
ldzi_d __dcons7,R24
mul_d R26,R24,R26
ldzi_d __dcons8,R24
sub_d R26,R24,R24
cvtdf R24,R24
strri_f R24,R1,0x0
ldzi_f _zi,R24
cvtfd R24,R24
ldzi_d __dcons7,R26
mul_d R24,R26,R24
ldzi_d __dcons8,R26
sub_d R24,R26,R24
cvtdf R24,R24
strri_f R24,R0,0x0
addi_l R0,0x8,R0
addi_l R1,0x8,R1
ldzi_l __lcons13,R24
cmp_l R0,R24
ble Oscar_L1
movi_w 0x1,R0
Oscar_L2:
addi_l R31,0x8,R31
movi_w 0x100,R24
ldzi_l __pcons14,R25
ldzi_l __pcons15,R26
ldzi_l __pcons10,R27
ldzi_d __dcons9,R1
strri_d R1,R31,-0x8
call _Fft
subi_l R31,0x8,R31
addi_w R0,0x1,R0
cmpi_w R0,0x14
ble Oscar_L2
; EXIT
; .temp4 at stkloc 0 (0x0) size 12
ldri_l R30,0x0,R0
ldri_l R30,0x4,R1
ldri_l R30,0x8,R2
mov_l R30,R31
ldri_l R31,-0x4,R30
subi_l R31,0x4,R31
ret
.segment fft_bss,memtype=1,locinc=1,wordsize=8
fft_V21:
.global _zi
_zi:
.bss 4
; zi size 4
.global _e
_e:
.bss 1040
; e size 1040
.global _zr
_zr:
.bss 4
; zr size 4
.global _w
_w:
.bss 2056
; w size 2056
.global _z
_z:
.bss 2056
; z size 2056
.extern _seed
.extern _printf
.segment fft_data_const,memtype=1,locinc=1,wordsize=8,rom
__pcons15:
.data .byte3(_w)
.data .byte2(_w)
.data .byte1(_w)
.data .byte0(_w)
__pcons14:
.data .byte3(_z)
.data .byte2(_z)
.data .byte1(_z)
.data .byte0(_z)
__lcons13:
.data .byte3(_z+2052)
.data .byte2(_z+2052)
.data .byte1(_z+2052)
.data .byte0(_z+2052)
__pcons12:
.data .byte3(_z+8)
.data .byte2(_z+8)
.data .byte1(_z+8)
.data .byte0(_z+8)
__pcons11:
.data .byte3(_z+12)
.data .byte2(_z+12)
.data .byte1(_z+12)
.data .byte0(_z+12)
__pcons10:
.data .byte3(_e)
.data .byte2(_e)
.data .byte1(_e)
.data .byte0(_e)
__dcons9:
.data 0x3f
.data 0xb0
.data 0x0
.data 0x0
.data 0x0
.data 0x0
.data 0x0
.data 0x0
__dcons8:
.data 0x40
.data 0x24
.data 0x0
.data 0x0
.data 0x0
.data 0x0
.data 0x0
.data 0x0
__dcons7:
.data 0x40
.data 0x34
.data 0x0
.data 0x0
.data 0x0
.data 0x0
.data 0x0
.data 0x0
__fconsf0:
.data 0x0
.data 0x0
.data 0x0
.data 0x0
__fconsf2:
.data 0x40
.data 0x0
.data 0x0
.data 0x0
__fcons6:
.data 0x40
.data 0x49
.data 0xf
.data 0xda
__fcons5:
.data 0x40
.data 0x80
.data 0x0
.data 0x0
__fcons4:
.data 0xbf
.data 0x80
.data 0x0
.data 0x0
__dcons3:
.data 0x40
.data 0xc0
.data 0x0
.data 0x0
.data 0x0
.data 0x0
.data 0x0
.data 0x0
__pcons2:
.data .byte3(fft_V3)
.data .byte2(fft_V3)
.data .byte1(fft_V3)
.data .byte0(fft_V3)
__pcons1:
.data .byte3(fft_V2)
.data .byte2(fft_V2)
.data .byte1(fft_V2)
.data .byte0(fft_V2)
__fconsf1:
.data 0x3f
.data 0x80
.data 0x0
.data 0x0
.segment fft_istrings_const,memtype=1,locinc=1,wordsize=8,rom
fft_V2:
.data 0xa
.data 0x0
fft_V3:
.data 0x20
.data 0x20
.data 0x25
.data 0x31
.data 0x35
.data 0x2e
.data 0x33
.data 0x65
.data 0x25
.data 0x31
.data 0x35
.data 0x2e
.data 0x33
.data 0x65
.data 0x0
.segment _idesc,memtype=1,locinc=1,wordsize=8,rom
.data 0x0
.data 0x0
.data 0x0
.data 0x0
.data .byte3(fft_V21)
.data .byte2(fft_V21)
.data .byte1(fft_V21)
.data .byte0(fft_V21)
.data 0x0
.data 0x0
.data 0x14
.data 0x28
Back to Archelon's Home Page