; This file contains radix2 loops of decimation in time ; for one and two dimensional data. ; Each loop is present in three different forms that ; differ in amplitude (gain). %define TMP1 ebp-4 %define TMP2 ebp-8 %define TMP3 ebp-12 %define TMP4 ebp-16 %define M1 ebp-20 %define JMAX ebp-24 %define LIMIT ebp-28 %define INCC ebp-32 %define ZXY ebp-36 %define J ebp-40 section .text fft2_mmx_b2hi: push ebx push ecx push edx push esi push edi push ebp mov ebp,[fft2_mmxcosin] xor eax,eax mov [TMP1],eax mov [TMP3],eax dec eax mov [TMP2],eax movq mm7,[TMP2] movq mm6,[TMP3] ; inc=fft2_inc ; Index of cosin table is loop control. 4 words for each entry. mov eax,[fft2_inc] sal eax,3 mov [INCC],eax ; fft2_inc/=4; sar eax,5 mov [fft2_inc],eax mov eax,[fft2_size] sal eax,1 mov [LIMIT],eax ; Base of current transform. ;zxy=&fft2_short_int[2*ui.rx_channels*fft2_na*fft2_size]; mov eax,[fft2_size] sal eax,3 imul eax,[fft2_na] mov edx,[fft2_short_int] add edx,eax mov [ZXY],edx ; ia and related variables point to words. ; m2=fft2_m2; mov ecx,[fft2_m2] sal ecx,2 mov [fft2_m2],ecx sar ecx,1 xor eax,eax mov [J],eax mov eax,[fft2_size] sal eax,3 mov [JMAX],eax ; m1=fft2_m1; mov eax,[fft2_m1] sal eax,1 mov [M1],eax sal eax,1 mov [fft2_m1],eax ; for(j=0; j