-
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/compile: incorrect assembly output for 386 #16203
Comments
Looks like a bug in the 386 backend. (vagrant is 32-bit Go, the others are 64-bit Go).
|
Aside: Is the playground not 32 bits? Its |
@ericlagergren , good question. I think maybe because the playground is amd64p32, or because it runs with -N. Not sure what its current state is. |
Not a regression from 1.6, so while this is unfortunate, I think it should wait for 1.8 (where SSA will very likely fix it for free). |
Yes, this is fixed with the 386 SSA backend. Should be in master momentarily. |
Please answer these questions before submitting your issue. Thanks!
go version
)?1.6.2 (on my laptop and Vagrant; unsure about play.golang.org)
go env
)?Vagrant:
Laptop:
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.
I ran this (https://play.golang.org/p/HNidlIeDdb) in three separate environments:
My laptop
Vagrant
play.golang.org
All three of them return
1
when+1
is passed.I spoke with Tv` in #go-nuts to make sure I wasn't, well, going nuts and he came up with this repro: https://play.golang.org/p/VgyYHJAYu2
Here's the generated assembly from Vagrant:
objdump: https://gist.github.com/EricLagergren/8a53922a0f58dfef8d62710b062b637a
gcflags -S: https://gist.github.com/EricLagergren/93392d4977c63c74b0039c122b3d9b0b
Here's proof I didn't just goof up the Vagrant code 😀 : https://gist.github.com/EricLagergren/af4215805a0d88e426fde0c55696df3c
The text was updated successfully, but these errors were encountered: