-
Notifications
You must be signed in to change notification settings - Fork 17.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cmd/asm: incorrect instruction encodings #14069
Comments
Recounting this to @aclements I figured out what is going on with CMOVLEQ. The GNU form is |
CL https://golang.org/cl/18850 mentions this issue. |
Generated by x86test, from https://golang.org/cl/18842 (still in progress). The commented out lines are either missing or misspelled or incorrectly handled instructions. For #4816, #8037, #13822, #14068, #14069. Change-Id: If309310c97d9d2a3c71fc64c51d4a957e9076ab7 Reviewed-on: https://go-review.googlesource.com/18850 Reviewed-by: Rob Pike <r@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Is this still going to happen? |
Didn't get the new tables done for Go 1.7. These weren't an emergency for Go 1.6 and remain not an emergency for Go 1.7. |
CL https://golang.org/cl/41857 mentions this issue. |
Taken from the Intel Software Development Manual (of course, in the line below it's ADC DST, SRC; The opposite of the commit subject). 12 /r ADC r8, r/m8 We need 0x12 for the corresponding ytab line, not 0x10. {Ymb, Ynone, Yrb, Zm_r, 1}, Updates #14069 Change-Id: Id37cbd0c581c9988c2de355efa908956278e2189 Reviewed-on: https://go-review.googlesource.com/41857 Reviewed-by: Keith Randall <khr@golang.org>
CL https://golang.org/cl/42090 mentions this issue. |
Looking at I'm wondering how it'd be possible to make this less painful for people out there using the Go assembler:
Of course, as Any other ideas? |
ANDPS, like all others PS (Packed Single precision floats) instructions, need Ym: they don't use the 0x66 prefix. From the manual: NP 0F 54 /r ANDPS xmm1, xmm2/m128 NP meaning, quoting the manual: NP - Indicates the use of 66/F2/F3 prefixes (beyond those already part of the instructions opcode) are not allowed with the instruction. And indeed, the same instruction prefixed by 0x66 is ANDPD. Updates #14069 Change-Id: If312a6f1e77113ab8c0febe66bdb1b4171e41e0a Reviewed-on: https://go-review.googlesource.com/42090 Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
See also #20173 . |
I have constructed a fairly exhaustive test suite for the x86 assembler and identified some problems. The ones in this issue are long-time bugs that appear to have been present since the beginning of the Go project. We should fix them but given the history there is no need to rush the fixes into Go 1.6.
This may not be all of them: my tests don't account for some Go renamings of instructions.
I intend to fix these and check in the tests.
The text was updated successfully, but these errors were encountered: