mirror of
https://github.com/balena-os/balena-supervisor.git
synced 2024-12-25 16:31:05 +00:00
848184e9a6
Signed-off-by: Pablo Carranza Velez <pablo@resin.io>
79 lines
2.2 KiB
Diff
79 lines
2.2 KiB
Diff
commit 6a0e489a556d753161ce75d85a3114654c031853
|
|
Author: Pablo Carranza Velez <pablo@resin.io>
|
|
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 <petrosagg@gmail.com>
|
|
|
|
Signed-off-by: Pablo Carranza Velez <pablo@resin.io>
|
|
|
|
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
|
|
|