Skip to content

Commit e4ca98b

Browse files
committed
fix for old go compilers
1 parent 504b187 commit e4ca98b

File tree

1 file changed

+25
-11
lines changed

1 file changed

+25
-11
lines changed

src/runtime/asm_amd64.s

+25-11
Original file line numberDiff line numberDiff line change
@@ -95,16 +95,16 @@ GLOBL bad_proc_msg<>(SB), RODATA, $78
9595
// Define a list of AMD64 microarchitecture level features
9696
// https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels
9797

98-
// SSE3 SSSE3 CMPXCHNG16 SSE4.1 SSE4.2 POPCNT
99-
#define V2_FEATURES_CX (1 << 0 | 1 << 9 | 1 << 13 | 1 << 19 | 1 << 20 | 1 << 23)
100-
// LAHF/SAHF
101-
#define V2_EXT_FEATURES_CX (1 << 0)
102-
// FMA MOVBE OSXSAVE AVX F16C
103-
#define V3_FEATURES_CX (V2_FEATURES_CX | 1 << 12 | 1 << 22 | 1 << 27 | 1 << 28 | 1 << 29)
104-
// ABM (FOR LZNCT)
105-
#define V3_EXT_FEATURES_CX (V2_EXT_FEATURES_CX | 1 << 5)
106-
// BMI1 AVX2 BMI2
107-
#define V3_EXT_FEATURES_BX (1 << 3 | 1 << 5 | 1 << 8)
98+
// SSE3 SSSE3 CMPXCHNG16 SSE4.1 SSE4.2 POPCNT
99+
#define V2_FEATURES_CX (1 << 0 | 1 << 9 | 1 << 13 | 1 << 19 | 1 << 20 | 1 << 23)
100+
// LAHF/SAHF
101+
#define V2_EXT_FEATURES_CX (1 << 0)
102+
// FMA MOVBE OSXSAVE AVX F16C
103+
#define V3_FEATURES_CX (V2_FEATURES_CX | 1 << 12 | 1 << 22 | 1 << 27 | 1 << 28 | 1 << 29)
104+
// ABM (FOR LZNCT)
105+
#define V3_EXT_FEATURES_CX (V2_EXT_FEATURES_CX | 1 << 5)
106+
// BMI1 AVX2 BMI2
107+
#define V3_EXT_FEATURES_BX (1 << 3 | 1 << 5 | 1 << 8)
108108
// XMM YMM
109109
#define V3_OS_SUPPORT_AX (1 << 1 | 1 << 2)
110110
// AVX512F AVX512DQ AVX512CD AVX512BW AVX512VL
@@ -147,6 +147,20 @@ GLOBL bad_proc_msg<>(SB), RODATA, $78
147147
#endif
148148
#endif
149149

150+
#ifdef GOAMD64_v1
151+
#define SKIP_GOAMD64_CHECK
152+
#endif
153+
154+
#ifndef GOAMD64_v1
155+
#ifndef GOAMD64_v2
156+
#ifndef GOAMD64_v3
157+
#ifndef GOAMD64_v4
158+
#define SKIP_GOAMD64_CHECK
159+
#endif
160+
#endif
161+
#endif
162+
#endif
163+
150164
TEXT runtime·rt0_go(SB),NOSPLIT|TOPFRAME,$0
151165
// copy arguments forward on an even stack
152166
MOVQ DI, AX // argc
@@ -170,7 +184,7 @@ TEXT runtime·rt0_go(SB),NOSPLIT|TOPFRAME,$0
170184
CPUID
171185
MOVL AX, SI
172186
CMPL AX, $0
173-
#ifdef GOAMD64_v1
187+
#ifdef SKIP_GOAMD64_CHECK
174188
JE nocpuinfo
175189
#else
176190
JNE has_cpuinfo

0 commit comments

Comments
 (0)