]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix error check in freebsd/386 i386_set_ldt
authorRuss Cox <rsc@golang.org>
Sat, 31 May 2014 13:35:37 +0000 (09:35 -0400)
committerRuss Cox <rsc@golang.org>
Sat, 31 May 2014 13:35:37 +0000 (09:35 -0400)
Update #2675

The code here was using the error check for Linux/386,
not the one for FreeBSD/386. Most of the time it worked.

Thanks to Neel Natu (FreeBSD developer) for finding this.

The s/JCC/JAE/ a few lines later is a no-op but makes the
test match the rest of the file. Why we write JAE instead of JCC
I don't know, but the two are equivalent and the file might
as well be consistent.

LGTM=bradfitz, minux
R=golang-codereviews, bradfitz, minux
CC=golang-codereviews
https://golang.org/cl/99680044

src/pkg/runtime/sys_freebsd_386.s

index 71245a1562834ff806b47c4025d6272d29f975ea..4c97eec7b1ea79e6995d850af215c5c49c1466df 100644 (file)
@@ -309,8 +309,7 @@ TEXT runtime·i386_set_ldt(SB),NOSPLIT,$16
        MOVL    AX, 8(SP)
        MOVL    $165, AX
        INT     $0x80
-       CMPL    AX, $0xfffff001
-       JLS     2(PC)
+       JAE     2(PC)
        INT     $3
        RET
 
@@ -326,7 +325,7 @@ TEXT runtime·sysctl(SB),NOSPLIT,$28
        MOVSL                           // arg 6 - newlen
        MOVL    $202, AX                // sys___sysctl
        INT     $0x80
-       JCC     3(PC)
+       JAE     3(PC)
        NEGL    AX
        RET
        MOVL    $0, AX