diff --git a/Appl/CEP/CS1/CS1_BGLProc/src/Correlator.S b/Appl/CEP/CS1/CS1_BGLProc/src/Correlator.S index a1940ca0192014a548e35a71f5388b7c31382764..17b6a268acd4cb52e237a83ec5c264a69e0d6a3b 100644 --- a/Appl/CEP/CS1/CS1_BGLProc/src/Correlator.S +++ b/Appl/CEP/CS1/CS1_BGLProc/src/Correlator.S @@ -1070,6 +1070,13 @@ _clear_correlation: blr # polarizations +#define SIZEOF_NR_VALID_SAMPLES 2 + +#if SIZEOF_NR_VALID_SAMPLES != 1 && SIZEOF_NR_VALID_SAMPLES != 2 && SIZEOF_NR_VALID_SAMPLES != 4 +#error Unsupported SIZEOF_NR_VALID_SAMPLES +#endif + + .align 5 .global _weigh_visibilities _weigh_visibilities: @@ -1079,24 +1086,18 @@ _weigh_visibilities: mtctr 6 li 8,8 -#if NR_SAMPLES_PER_INTEGRATION < 256 - li 7,1 -#elif NR_SAMPLES_PER_INTEGRATION < 65536 - li 7,2 -#else - li 7,4 -#endif + li 7,SIZEOF_NR_VALID_SAMPLES sub 3,3,8 sub 4,4,7 mr 6,3 -#if NR_SAMPLES_PER_INTEGRATION < 256 +#if SIZEOF_NR_VALID_SAMPLES == 1 lbzux 9,4,7 lbzux 10,4,7 -#elif NR_SAMPLES_PER_INTEGRATION < 65536 +#elif SIZEOF_NR_VALID_SAMPLES == 2 lhzux 9,4,7 lhzux 10,4,7 -#else +#elif SIZEOF_NR_VALID_SAMPLES == 4 lwzux 9,4,7 lwzux 10,4,7 #endif @@ -1120,9 +1121,9 @@ loop5: fxpmul 2,8,2 fxpmul 3,8,3 -#if NR_SAMPLES_PER_INTEGRATION < 256 +#if SIZEOF_NR_VALID_SAMPLES == 1 lbzux 9,4,7 -#elif NR_SAMPLES_PER_INTEGRATION < 65536 +#elif SIZEOF_NR_VALID_SAMPLES == 2 lhzux 9,4,7 #else lwzux 9,4,7 @@ -1145,11 +1146,11 @@ loop5: lfpsux 3,3,8 fxpmul 7,8,7 -#if NR_SAMPLES_PER_INTEGRATION < 256 +#if SIZEOF_NR_VALID_SAMPLES == 1 lbzux 10,4,7 -#elif NR_SAMPLES_PER_INTEGRATION < 65536 +#elif SIZEOF_NR_VALID_SAMPLES == 2 lhzux 10,4,7 -#else +#elif SIZEOF_NR_VALID_SAMPLES == 4 lwzux 10,4,7 #endif @@ -1179,16 +1180,14 @@ _post_process_visibilities: li 0,0 li 8,8 -#if NR_SAMPLES_PER_INTEGRATION < 256 +#if SIZEOF_NR_VALID_SAMPLES == 1 lbz 11,0(4) # load nrValidSamples - li 9,1 -#elif NR_SAMPLES_PER_INTEGRATION < 65536 +#elif SIZEOF_NR_VALID_SAMPLES == 2 lhz 11,0(4) - li 9,2 -#else +#elif SIZEOF_NR_VALID_SAMPLES == 4 lwz 11,0(4) - li 9,4 #endif + li 9,SIZEOF_NR_VALID_SAMPLES li 10,4 lfsx 18,0,6 # load threshold addi 7,3,-8 @@ -1200,11 +1199,11 @@ _post_process_visibilities: loop6: slwi. 12,11,2 # if 4*nrValidSamples == 0, jump to invalid_2 -#if NR_SAMPLES_PER_INTEGRATION < 256 +#if SIZEOF_NR_VALID_SAMPLES == 1 lbzux 11,4,9 # load nrValidSamples -#elif NR_SAMPLES_PER_INTEGRATION < 65536 +#elif SIZEOF_NR_VALID_SAMPLES == 2 lhzux 11,4,9 -#else +#elif SIZEOF_NR_VALID_SAMPLES == 4 lwzux 11,4,9 #endif beq- 0,invalid_2 @@ -1237,11 +1236,11 @@ loop6: L7: slwi. 12,11,2 # if 4*nrValidSamples == 0, jump to invalid_4 -#if NR_SAMPLES_PER_INTEGRATION < 256 +#if SIZEOF_NR_VALID_SAMPLES == 1 lbzux 11,4,9 # load nrValidSamples -#elif NR_SAMPLES_PER_INTEGRATION < 65536 +#elif SIZEOF_NR_VALID_SAMPLES == 2 lhzux 11,4,9 -#else +#elif SIZEOF_NR_VALID_SAMPLES == 4 lwzux 11,4,9 #endif beq- 0,invalid_4 @@ -1287,11 +1286,11 @@ end: li 11,16 # restore call-saved registers blr invalid_1: -#if NR_SAMPLES_PER_INTEGRATION < 256 +#if SIZEOF_NR_VALID_SAMPLES == 1 stb 0,-1(4) -#elif NR_SAMPLES_PER_INTEGRATION < 65536 +#elif SIZEOF_NR_VALID_SAMPLES == 2 sth 0,-2(4) -#else +#elif SIZEOF_NR_VALID_SAMPLES == 4 stw 0,-4(4) #endif dcbz 0,7 @@ -1308,11 +1307,11 @@ invalid_2: b L7 invalid_3: -#if NR_SAMPLES_PER_INTEGRATION < 256 +#if SIZEOF_NR_VALID_SAMPLES == 1 stb 0,-1(4) -#elif NR_SAMPLES_PER_INTEGRATION < 65536 +#elif SIZEOF_NR_VALID_SAMPLES == 2 sth 0,-2(4) -#else +#elif SIZEOF_NR_VALID_SAMPLES == 4 stw 0,-4(4) #endif dcbz 0,7