commit 6a0e489a556d753161ce75d85a3114654c031853 Author: Pablo Carranza Velez Date: Fri Jun 9 14:57:23 2017 -0700 Do not fail when there's no MMX support Adapted from https://github.com/resin-io/resin-supervisor/blob/c7a7ba93fb46775006f0739ced41fc0a2059b426/gosuper/go-1.6.3-patches/0001-Revert-runtime-check-and-fail-early-with-a-message-i.patch Original author: Petros Angelatos Signed-off-by: Pablo Carranza Velez diff --git a/src/runtime/asm_386.s b/src/runtime/asm_386.s index 3d0b74c..f4e51ce 100644 --- a/src/runtime/asm_386.s +++ b/src/runtime/asm_386.s @@ -26,32 +26,6 @@ TEXT runtime·rt0_go(SB),NOSPLIT,$0 MOVL SP, (g_stack+stack_hi)(BP) // find out information about the processor we're on -#ifdef GOOS_nacl // NaCl doesn't like PUSHFL/POPFL - JMP has_cpuid -#else - // first see if CPUID instruction is supported. - PUSHFL - PUSHFL - XORL $(1<<21), 0(SP) // flip ID bit - POPFL - PUSHFL - POPL AX - XORL 0(SP), AX - POPFL // restore EFLAGS - TESTL $(1<<21), AX - JNE has_cpuid -#endif - -bad_proc: // show that the program requires MMX. - MOVL $2, 0(SP) - MOVL $bad_proc_msg<>(SB), 4(SP) - MOVL $0x3d, 8(SP) - CALL runtime·write(SB) - MOVL $1, 0(SP) - CALL runtime·exit(SB) - INT $3 - -has_cpuid: MOVL $0, AX CPUID MOVL AX, SI @@ -76,11 +50,6 @@ notintel: MOVL CX, AX // Move to global variable clobbers CX when generating PIC MOVL AX, runtime·cpuid_ecx(SB) MOVL DX, runtime·cpuid_edx(SB) - - // Check for MMX support - TESTL $(1<<23), DX // MMX - JZ bad_proc - // Load EAX=7/ECX=0 cpuid flags CMPL SI, $7 JLT nocpuinfo @@ -170,17 +139,6 @@ ok: INT $3 RET -DATA bad_proc_msg<>+0x00(SB)/8, $"This pro" -DATA bad_proc_msg<>+0x08(SB)/8, $"gram can" -DATA bad_proc_msg<>+0x10(SB)/8, $" only be" -DATA bad_proc_msg<>+0x18(SB)/8, $" run on " -DATA bad_proc_msg<>+0x20(SB)/8, $"processo" -DATA bad_proc_msg<>+0x28(SB)/8, $"rs with " -DATA bad_proc_msg<>+0x30(SB)/8, $"MMX supp" -DATA bad_proc_msg<>+0x38(SB)/4, $"ort." -DATA bad_proc_msg<>+0x3c(SB)/1, $0xa -GLOBL bad_proc_msg<>(SB), RODATA, $0x3d - DATA runtime·mainPC+0(SB)/4,$runtime·main(SB) GLOBL runtime·mainPC(SB),RODATA,$4