]> Cypherpunks repositories - gostls13.git/commitdiff
liblink: fix encoding of SETcc for amd64
authorShenghou Ma <minux@golang.org>
Fri, 2 Jan 2015 21:30:08 +0000 (16:30 -0500)
committerMinux Ma <minux@golang.org>
Sun, 4 Jan 2015 20:38:12 +0000 (20:38 +0000)
liblink used to encode both SETEQ BP and SETEQ CH as 0f 94 c5,
however, SETEQ BP should have used a REX prefix.

Fixes #8545.

Change-Id: Ie59c990cdd0ec506cffe4318e9ad1b48db5e57dd
Reviewed-on: https://go-review.googlesource.com/2270
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
src/liblink/asm6.c

index 7971022b56b399f61ecad0ad05922ac8e3fda597..cd2ec9e0c734f532ee78826c168ea610a6f864f9 100644 (file)
@@ -1289,22 +1289,22 @@ static Optab optab[] =
        { ASCASL,       ynone,  Px, {0xaf} },
        { ASCASQ,       ynone,  Pw, {0xaf} },
        { ASCASW,       ynone,  Pe, {0xaf} },
-       { ASETCC,       yscond, Pm, {0x93,(00)} },
-       { ASETCS,       yscond, Pm, {0x92,(00)} },
-       { ASETEQ,       yscond, Pm, {0x94,(00)} },
-       { ASETGE,       yscond, Pm, {0x9d,(00)} },
-       { ASETGT,       yscond, Pm, {0x9f,(00)} },
-       { ASETHI,       yscond, Pm, {0x97,(00)} },
-       { ASETLE,       yscond, Pm, {0x9e,(00)} },
-       { ASETLS,       yscond, Pm, {0x96,(00)} },
-       { ASETLT,       yscond, Pm, {0x9c,(00)} },
-       { ASETMI,       yscond, Pm, {0x98,(00)} },
-       { ASETNE,       yscond, Pm, {0x95,(00)} },
-       { ASETOC,       yscond, Pm, {0x91,(00)} },
-       { ASETOS,       yscond, Pm, {0x90,(00)} },
-       { ASETPC,       yscond, Pm, {0x9b,(00)} },
-       { ASETPL,       yscond, Pm, {0x99,(00)} },
-       { ASETPS,       yscond, Pm, {0x9a,(00)} },
+       { ASETCC,       yscond, Pb, {0x0f,0x93,(00)} },
+       { ASETCS,       yscond, Pb, {0x0f,0x92,(00)} },
+       { ASETEQ,       yscond, Pb, {0x0f,0x94,(00)} },
+       { ASETGE,       yscond, Pb, {0x0f,0x9d,(00)} },
+       { ASETGT,       yscond, Pb, {0x0f,0x9f,(00)} },
+       { ASETHI,       yscond, Pb, {0x0f,0x97,(00)} },
+       { ASETLE,       yscond, Pb, {0x0f,0x9e,(00)} },
+       { ASETLS,       yscond, Pb, {0x0f,0x96,(00)} },
+       { ASETLT,       yscond, Pb, {0x0f,0x9c,(00)} },
+       { ASETMI,       yscond, Pb, {0x0f,0x98,(00)} },
+       { ASETNE,       yscond, Pb, {0x0f,0x95,(00)} },
+       { ASETOC,       yscond, Pb, {0x0f,0x91,(00)} },
+       { ASETOS,       yscond, Pb, {0x0f,0x90,(00)} },
+       { ASETPC,       yscond, Pb, {0x0f,0x9b,(00)} },
+       { ASETPL,       yscond, Pb, {0x0f,0x99,(00)} },
+       { ASETPS,       yscond, Pb, {0x0f,0x9a,(00)} },
        { ASHLB,        yshb,   Pb, {0xd0,(04),0xc0,(04),0xd2,(04)} },
        { ASHLL,        yshl,   Px, {0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04)} },
        { ASHLQ,        yshl,   Pw, {0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04)} },