//*********************************************************************** // Defines for the FFT routines for TigerSHARC family of processors // FFTDef.h //*********************************************************************** 关于TigerSHARC 的一个Example----fft_flp32_C, 在fft32.asm中 I. Description of Calling.
1. Inputs: j4 -> input (ping-pong buffer 1) j5 -> ping-pong buffer 1 j6 -> ping-pong buffer 2 j7 -> output j27+0x18 -> N = Number of points j27+0x19 -> REAL or COMPLEX
请问怎么完成上面的对应关系???????
看了代码似乎是通过下面这些代码,可是还是没搞明白,是怎么完成上面的对应!
在FFTDef.h中有这么几条, #if !defined(__FFTDEF_H_) #define __FFTDEF_H_
//************************************ Macros ***************************
#define mPUSHQ(arg) \ Q[k27 += -4] = arg;;
#define mPOPQ(arg) \ k27 = k27 + 4;; \ arg = Q[k27 += 0];;
#define mENTER \ j26 = j27 - 0x40; k26 = k27 - 0x40;; \ [j27 += 0xFFFFFFF4] = cJMP; k27 = k27 - 0x04;;
#define mRETURN \ cjmp = [j26 + 0x40];; \ cjmp(ABS)(NP); j27:24 = Q[j26 + 0x44]; k27:24 = Q[k26 + 0x44];;
之后在fft32.asm中语句是这样的 /************************************ Includes **********************************
#include "FFTDef.h" #include "defts201.h"
//************************* Externs *************************************
.extern _twiddles;
//********************************* FFT Routine ********************************* .section program; .global _FFT32;
_FFT32:
//********************************** Prologue ***********************************
mENTER mPUSHQ(xR31:28) mPUSHQ(xR27:24) mPUSHQ(yR31:28) mPUSHQ(yR27:24)
|