@@ -47,8 +47,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4747#define CPU_LOONGSON3R5 1
4848#define CPU_LOONGSON2K1000 2
4949
50- #define LA_HWCAP_LSX (1<< 4)
51- #define LA_HWCAP_LASX (1<< 5)
50+ #define LA_HWCAP_LSX (1U << 4)
51+ #define LA_HWCAP_LASX (1U << 5)
5252
5353static char * cpuname [] = {
5454 "LOONGSONGENERIC" ,
@@ -64,11 +64,11 @@ static char *cpuname_lower[] = {
6464
6565int detect (void ) {
6666#ifdef __linux
67- int flag = (int )getauxval (AT_HWCAP );
67+ int hwcap = (int )getauxval (AT_HWCAP );
6868
69- if (flag & LA_HWCAP_LASX )
69+ if (hwcap & LA_HWCAP_LASX )
7070 return CPU_LOONGSON3R5 ;
71- else if (flag & LA_HWCAP_LSX )
71+ else if (hwcap & LA_HWCAP_LSX )
7272 return CPU_LOONGSON2K1000 ;
7373 else
7474 return CPU_GENERIC ;
@@ -94,7 +94,9 @@ void get_subdirname(void) {
9494}
9595
9696void get_cpuconfig (void ) {
97+ uint32_t hwcaps = 0 ;
9798 int d = detect ();
99+
98100 switch (d ) {
99101 case CPU_LOONGSON3R5 :
100102 printf ("#define LOONGSON3R5\n" );
@@ -129,6 +131,10 @@ void get_cpuconfig(void) {
129131 printf ("#define L2_ASSOCIATIVE 16\n" );
130132 break ;
131133 }
134+
135+ hwcaps = (uint32_t )getauxval ( AT_HWCAP );
136+ if (hwcaps & LA_HWCAP_LSX ) printf ("#define HAVE_LSX\n" );
137+ if (hwcaps & LA_HWCAP_LASX ) printf ("#define HAVE_LASX\n" );
132138}
133139
134140void get_libname (void ){
0 commit comments