]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: don't use CMOV for 386
authorKeith Randall <khr@golang.org>
Wed, 13 Jan 2016 21:09:46 +0000 (13:09 -0800)
committerKeith Randall <khr@golang.org>
Wed, 13 Jan 2016 23:07:40 +0000 (23:07 +0000)
CMOVs were not introduced until P6.  We need 386 to run on
Pentium MMX.

Fixes #13923

Change-Id: Iee9572cd83e64c3a1336bc1e6b300b048fbcc996
Reviewed-on: https://go-review.googlesource.com/18621
Reviewed-by: Minux Ma <minux@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>

src/runtime/asm_386.s

index c5f0c5156643e05ce663cd952314da4e08cdd9ff..4181859724b7dd29132b4b4f5bf321e9ab728694 100644 (file)
@@ -1439,7 +1439,8 @@ TEXT strings·IndexByte(SB),NOSPLIT,$0-16
 TEXT runtime·cmpbody(SB),NOSPLIT,$0-0
        MOVL    DX, BP
        SUBL    BX, DX // DX = blen-alen
-       CMOVLGT BX, BP // BP = min(alen, blen)
+       JLE     2(PC)
+       MOVL    BX, BP // BP = min(alen, blen)
        CMPL    SI, DI
        JEQ     allsame
        CMPL    BP, $4
@@ -1558,7 +1559,8 @@ TEXT runtime·fastrand1(SB), NOSPLIT, $0-4
        ADDL    DX, DX
        MOVL    DX, BX
        XORL    $0x88888eef, DX
-       CMOVLMI BX, DX
+       JPL     2(PC)
+       MOVL    BX, DX
        MOVL    DX, m_fastrand(AX)
        MOVL    DX, ret+0(FP)
        RET