|
|
|
@@ -38,18 +38,52 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
|
|
|
|
|
|
#define STACKSIZE 256 |
|
|
|
|
|
|
|
#ifndef ARM_SOFTFP_ABI |
|
|
|
//hard |
|
|
|
#define OLD_INC_X [fp, #0 ] |
|
|
|
#define OLD_Y [fp, #4 ] |
|
|
|
#define OLD_INC_Y [fp, #8 ] |
|
|
|
#else |
|
|
|
#if !defined(__ARM_PCS_VFP) |
|
|
|
|
|
|
|
#if !defined(COMPLEX) |
|
|
|
|
|
|
|
#if !defined(DOUBLE) |
|
|
|
#define OLD_ALPHA r3 |
|
|
|
#define OLD_X [fp, #0 ] |
|
|
|
#define OLD_INC_X [fp, #4 ] |
|
|
|
#define OLD_Y [fp, #8 ] |
|
|
|
#define OLD_INC_Y [fp, #12 ] |
|
|
|
#else |
|
|
|
#define OLD_ALPHA [fp, #0] |
|
|
|
#define OLD_X [fp, #8 ] |
|
|
|
#define OLD_INC_X [fp, #12 ] |
|
|
|
#define OLD_Y [fp, #16 ] |
|
|
|
#define OLD_INC_Y [fp, #20 ] |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
#else //COMPLEX |
|
|
|
|
|
|
|
#if !defined(DOUBLE) |
|
|
|
#define OLD_ALPHAR r3 |
|
|
|
#define OLD_ALPHAI [fp, #0 ] |
|
|
|
#define OLD_X [fp, #4 ] |
|
|
|
#define OLD_INC_X [fp, #8 ] |
|
|
|
#define OLD_Y [fp, #12 ] |
|
|
|
#define OLD_INC_Y [fp, #16 ] |
|
|
|
#else |
|
|
|
#define OLD_ALPHAR [fp, #0] |
|
|
|
#define OLD_ALPHAI [fp, #8] |
|
|
|
#define OLD_X [fp, #16 ] |
|
|
|
#define OLD_INC_X [fp, #20 ] |
|
|
|
#define OLD_Y [fp, #24 ] |
|
|
|
#define OLD_INC_Y [fp, #28 ] |
|
|
|
#endif |
|
|
|
|
|
|
|
#endif //!defined(COMPLEX) |
|
|
|
|
|
|
|
#else //__ARM_PCS_VFP |
|
|
|
|
|
|
|
#define OLD_INC_X [fp, #0 ] |
|
|
|
#define OLD_Y [fp, #4 ] |
|
|
|
#define OLD_INC_Y [fp, #8 ] |
|
|
|
|
|
|
|
#endif //!defined(__ARM_PCS_VFP) |
|
|
|
|
|
|
|
#define N r0 |
|
|
|
#define Y r1 |
|
|
|
#define INC_X r2 |
|
|
|
@@ -370,13 +404,28 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
|
|
add fp, sp, #8 |
|
|
|
sub sp, sp, #STACKSIZE // reserve stack |
|
|
|
|
|
|
|
#ifdef ARM_SOFTFP_ABI |
|
|
|
#ifndef DOUBLE |
|
|
|
vmov s0, r3 //move alpha to s0 |
|
|
|
#if !defined(__ARM_PCS_VFP) |
|
|
|
#if !defined(COMPLEX) |
|
|
|
#if !defined(DOUBLE) |
|
|
|
vmov s0, OLD_ALPHA |
|
|
|
ldr X, OLD_X |
|
|
|
#else |
|
|
|
vldr d0, OLD_ALPHA |
|
|
|
ldr X, OLD_X |
|
|
|
#endif |
|
|
|
#else //COMPLEX |
|
|
|
#if !defined(DOUBLE) |
|
|
|
vmov s0, OLD_ALPHAR |
|
|
|
vldr s1, OLD_ALPHAI |
|
|
|
ldr X, OLD_X |
|
|
|
#else |
|
|
|
vldr d0, OLD_ALPHAR |
|
|
|
vldr d1, OLD_ALPHAI |
|
|
|
ldr X, OLD_X |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
ldr INC_X , OLD_INC_X |
|
|
|
ldr Y, OLD_Y |
|
|
|
ldr INC_Y , OLD_INC_Y |
|
|
|
|