-
Notifications
You must be signed in to change notification settings - Fork 1
/
mult3.asm
89 lines (75 loc) · 1.41 KB
/
mult3.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
; Copyright 1995-2009 Mersenne Research, Inc. All rights reserved
; Author: George Woltman
; Email: [email protected]
;
; This code handles FFTs that use two passes with 10 levels done on the
; second pass.
;
; You will not stand a chance of understanding any of this code without
; thoroughly familiarizing yourself with fast fourier transforms. This
; code was adapted from an algorithm described in Richard Crandall's article
; on Discrete Weighted Transforms and Large-Integer Arithmetic.
;
TITLE setup
.686
.XMM
.MODEL FLAT
INCLUDE unravel.mac
INCLUDE extrn.mac
INCLUDE lucas.mac
INCLUDE pfa.mac
INCLUDE mult.mac
INCLUDE pass1.mac
INCLUDE fft3.mac
INCLUDE memory.mac
EXTRN gw_finish_fft:PROC
EXTRN gw_carries:PROC
EXTRN gw_finish_mult:PROC
EXTRNP pass2_10_levels
_TEXT SEGMENT
flat_distances
;; Distance between two pass 2 data blocks. Pass 2 does 10 FFT levels.
;; 2^10 complex values = 2^11 doubles = 16KB.
blkdst = (4*(4096+64)+64)
;; All the FFT routines for each FFT length.
IFNDEF PFETCH
; fft 20K
; fft 24K
; fft 24Kp
; fft 28K
; fft 32K
; fft 32Kp
ENDIF
; fft 40K
; fft 48K
; fft 48Kp
; fft 56K
; fft 64K
; fft 64Kp
; fft 80K
fft 96K
fft 96Kp
fft 112K
fft 128K
fft 128Kp
INCLUDE pass1scr.mac
fft 160K
fft 192K
fft 192Kp
fft 224K
fft 256K
fft 256Kp
fft 320K
fft 384K
fft 384Kp
fft 448K
fft 512K
fft 512Kp
fft 640K
fft 768K
fft 768Kp
fft 896K
fftclm 1024K, 2
fft 1024Kp
_TEXT ENDS
END