mirror of
https://github.com/golang/go
synced 2024-11-20 10:34:42 -07:00
cmd/asm: restrict x86 shift ops to 8bit args
Change "yshl" and "yshb" immediate oclass from Yi32 to Yu8. This forbids: - negative shift counts - shift counts that not fit into 8bit Affects: RCL{B,L,Q,W} RCR{B,L,Q,W} ROL{B,L,Q,W} ROR{B,L,Q,W} SAL{B,L,Q,W} SAR{B,L,Q,W} SHL{B,L,Q,W} SHR{B,L,Q,W} Issue #21528 has some additional context about this change. Change-Id: I60884cb2b41a860820889fcd878ca6f564006b4a Reviewed-on: https://go-review.googlesource.com/62190 Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
9b8964bf2d
commit
5b043abe12
@ -392,13 +392,13 @@ var ycmpl = []ytab{
|
|||||||
|
|
||||||
var yshb = []ytab{
|
var yshb = []ytab{
|
||||||
{Yi1, Ynone, Ymb, Zo_m, 2},
|
{Yi1, Ynone, Ymb, Zo_m, 2},
|
||||||
{Yi32, Ynone, Ymb, Zibo_m, 2},
|
{Yu8, Ynone, Ymb, Zibo_m, 2},
|
||||||
{Ycx, Ynone, Ymb, Zo_m, 2},
|
{Ycx, Ynone, Ymb, Zo_m, 2},
|
||||||
}
|
}
|
||||||
|
|
||||||
var yshl = []ytab{
|
var yshl = []ytab{
|
||||||
{Yi1, Ynone, Yml, Zo_m, 2},
|
{Yi1, Ynone, Yml, Zo_m, 2},
|
||||||
{Yi32, Ynone, Yml, Zibo_m, 2},
|
{Yu8, Ynone, Yml, Zibo_m, 2},
|
||||||
{Ycl, Ynone, Yml, Zo_m, 2},
|
{Ycl, Ynone, Yml, Zo_m, 2},
|
||||||
{Ycx, Ynone, Yml, Zo_m, 2},
|
{Ycx, Ynone, Yml, Zo_m, 2},
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user