Skip to content
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/internal/obj/arm64: golang assembler handles arm64 instruction movk incorrectly #21398

Closed
zhangfannie opened this issue Aug 11, 2017 · 3 comments

Comments

@zhangfannie
Copy link
Contributor

Please answer these questions before submitting your issue. Thanks!

What version of Go are you using (go version)?

go version devel +a6ae01a Thu Aug 10 21:45:01 2017 +0000 linux/arm64

What operating system and processor architecture are you using (go env)?

GOARCH="arm64"
GOBIN=""
GOEXE=""
GOHOSTARCH="arm64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/fanzha02/go"
GORACE=""
GOROOT="/mnt/share/homes/fanzha02/push/asmforus/golang"
GOTOOLDIR="/mnt/share/homes/fanzha02/push/asmforus/golang/pkg/tool/linux_arm64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build257833270=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"

What did you do?

cd src/cmd/asm/internal/asm
vi testdate/arm64enc.s
uncomment MOVK/MOVKW test cases
go test -run "ARM64Encoder"

If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.

What did you expect to see?

go test successfully

What did you see instead?

the MOVK/MOVKW test cases are failed

@gopherbot
Copy link

Change https://golang.org/cl/54990 mentions this issue: cmd/internal/obj/arm64: fix assemble movk bug

@cherrymui
Copy link
Member

cd src/cmd/asm/internal/asm
vi testdate/arm64enc.s
uncomment MOVK/MOVKW test cases
go test -run "ARM64Encoder"

As I have mentioned in an earlier similar issue, even this is the way to reproduce the failure, it doesn't help understanding the problem. Please mention what the expected encoding is, and what the wrong encoding the assembler emits. Thanks.

@zhangfannie
Copy link
Contributor Author

@cherrymui I am sorry that I forgot to add the wrong encoding information as you mentioned before.
Please refer to the below error information.
requires uimm16 00716 (testdata/arm64enc.s:246) MOVKW $255918080, R21
requires uimm16 00720 (testdata/arm64enc.s:247) MOVK $16771847290880, R21
00716 (testdata/arm64enc.s:246) MOVKW $255918080, R21: have encoding 15008072, want 35e8a172
00720 (testdata/arm64enc.s:247) MOVK $16771847290880, R21: have encoding 150080f2, want 35e8c1f2

@golang golang locked and limited conversation to collaborators Aug 22, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants