]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/obj/x86: Make VPSHUFD accept negative constant
authorIlya Tocar <ilya.tocar@intel.com>
Thu, 25 Aug 2016 13:39:07 +0000 (16:39 +0300)
committerIlya Tocar <ilya.tocar@intel.com>
Wed, 31 Aug 2016 15:55:49 +0000 (15:55 +0000)
This partially reverts commit 4e24e1d9996b0b0155c8349e49244d9694c89708.
Since in release 1.7 VPSHUFD support negative constant as an argument,
removing it as part of 4e24e1d9996b0b0155c8349e49244d9694c89708 was wrong.
Add it back.

Change-Id: Id1a3e062fe8fb4cf538edb3f9970f0664f3f545f
Reviewed-on: https://go-review.googlesource.com/27712
Run-TryBot: Ilya Tocar <ilya.tocar@intel.com>
Reviewed-by: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/internal/obj/x86/asm6.go

index 5d6a9d8c5ab0afae204a0a245016cf7fb727b70d..e9d84650f24b4e9f62d0605d6dcc33ba75a557ee 100644 (file)
@@ -857,6 +857,8 @@ var yvex_ri3 = []ytab{
 var yvex_xyi3 = []ytab{
        {Yu8, Yxm, Yxr, Zvex_i_rm_r, 2},
        {Yu8, Yym, Yyr, Zvex_i_rm_r, 2},
+       {Yi8, Yxm, Yxr, Zvex_i_rm_r, 2},
+       {Yi8, Yym, Yyr, Zvex_i_rm_r, 2},
 }
 
 var yvex_yyi4 = []ytab{ //TODO don't hide 4 op, some version have xmm version
@@ -1712,7 +1714,7 @@ var optab =
        {AVPBROADCASTB, yvex_vpbroadcast, Pvex, [23]uint8{VEX_128_66_0F38_W0, 0x78, VEX_256_66_0F38_W0, 0x78}},
        {AVPTEST, yvex_xy2, Pvex, [23]uint8{VEX_128_66_0F38_WIG, 0x17, VEX_256_66_0F38_WIG, 0x17}},
        {AVPSHUFB, yvex_xy3, Pvex, [23]uint8{VEX_128_66_0F38_WIG, 0x00, VEX_256_66_0F38_WIG, 0x00}},
-       {AVPSHUFD, yvex_xyi3, Pvex, [23]uint8{VEX_128_66_0F_WIG, 0x70, VEX_256_66_0F_WIG, 0x70}},
+       {AVPSHUFD, yvex_xyi3, Pvex, [23]uint8{VEX_128_66_0F_WIG, 0x70, VEX_256_66_0F_WIG, 0x70, VEX_128_66_0F_WIG, 0x70, VEX_256_66_0F_WIG, 0x70}},
        {AVPOR, yvex_xy3, Pvex, [23]uint8{VEX_128_66_0F_WIG, 0xeb, VEX_256_66_0F_WIG, 0xeb}},
        {AVPADDQ, yvex_xy3, Pvex, [23]uint8{VEX_128_66_0F_WIG, 0xd4, VEX_256_66_0F_WIG, 0xd4}},
        {AVPADDD, yvex_xy3, Pvex, [23]uint8{VEX_128_66_0F_WIG, 0xfe, VEX_256_66_0F_WIG, 0xfe}},