| @@ -51,6 +51,7 @@ | |||||
| #define X r8 | #define X r8 | ||||
| #define INCX r9 | #define INCX r9 | ||||
| #endif | #endif | ||||
| #define FLAG r11 | |||||
| #endif | #endif | ||||
| #if defined(_AIX) || defined(__APPLE__) | #if defined(_AIX) || defined(__APPLE__) | ||||
| @@ -61,6 +62,7 @@ | |||||
| #define X r8 | #define X r8 | ||||
| #define INCX r9 | #define INCX r9 | ||||
| #endif | #endif | ||||
| #define FLAG r11 | |||||
| #endif | #endif | ||||
| #define FZERO f0 | #define FZERO f0 | ||||
| @@ -94,6 +96,10 @@ | |||||
| fcmpu cr0, FZERO, ALPHA_I | fcmpu cr0, FZERO, ALPHA_I | ||||
| bne- cr0, LL(A1I1) | bne- cr0, LL(A1I1) | ||||
| LDLONG FLAG, 104(SP) | |||||
| cmpwi cr0, FLAG, 1 | |||||
| beq- cr0, LL(A1I1) | |||||
| cmpwi cr0, INCX, 2 * SIZE | cmpwi cr0, INCX, 2 * SIZE | ||||
| bne- cr0, LL(A0IN) | bne- cr0, LL(A0IN) | ||||
| @@ -136,7 +136,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da_r,FLOAT da_i, F | |||||
| if ( inc_x <= 0 ) | if ( inc_x <= 0 ) | ||||
| return(0); | return(0); | ||||
| if (da_r == ZERO && da_i == ZERO) { | |||||
| if (da_r == ZERO && da_i == ZERO && dummy2 == 0) { | |||||
| //clear the vector and return | //clear the vector and return | ||||
| if (inc_x == 1) { | if (inc_x == 1) { | ||||
| memset(x, 0, n*COMPSIZE*SIZE); | memset(x, 0, n*COMPSIZE*SIZE); | ||||
| @@ -64,6 +64,7 @@ | |||||
| #endif | #endif | ||||
| #define INC1 r11 | #define INC1 r11 | ||||
| #define FLAG r12 | |||||
| #define FZERO f0 | #define FZERO f0 | ||||
| #define ALPHA_R f1 | #define ALPHA_R f1 | ||||
| @@ -97,6 +98,10 @@ | |||||
| fcmpu cr0, FZERO, ALPHA_I | fcmpu cr0, FZERO, ALPHA_I | ||||
| bne- cr0, LL(A1I1) | bne- cr0, LL(A1I1) | ||||
| lwz FLAG, FRAMESLOT(0)(SP) | |||||
| cmpwi cr0, FLAG, 1 | |||||
| beq- cr0, LL(A1I1) | |||||
| LL(A0IN): | LL(A0IN): | ||||
| srawi. r0, N, 3 | srawi. r0, N, 3 | ||||
| mtspr CTR, r0 | mtspr CTR, r0 | ||||