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 msr/mrs incorrectly #21464

Closed
zhangfannie opened this issue Aug 16, 2017 · 1 comment

Comments

@zhangfannie
Copy link
Contributor

zhangfannie commented Aug 16, 2017

Please answer these questions before submitting your issue. Thanks!

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

go version devel +d6cada7 Tue Aug 15 23:29:17 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-build062317428=/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 MSR/MRS 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?

I see the error information as below.
endtoend_test.go:186: illegal PSTATE field for immediate move (testdata/arm64enc.s:249) MSR $1, SPSel
endtoend_test.go:186: illegal PSTATE field for immediate move (testdata/arm64enc.s:250) MSR $9, DAIFSet
endtoend_test.go:186: illegal PSTATE field for immediate move (testdata/arm64enc.s:251) MSR $6, DAIFClr
endtoend_test.go:228: (testdata/arm64enc.s:249) MSR $1, SPSel: have encoding 1f4100d5, want bf4100d5
endtoend_test.go:228: (testdata/arm64enc.s:250) MSR $9, DAIFSet: have encoding 1f4900d5, want df4903d5
endtoend_test.go:228: (testdata/arm64enc.s:251) MSR $6, DAIFClr: have encoding 1f4600d5, want ff4603d5
endtoend_test.go:228: (testdata/arm64enc.s:252) MRS ELR_EL1, R8: have encoding 080030d5, want 284038d5
endtoend_test.go:228: (testdata/arm64enc.s:253) MSR R16, ELR_EL1: have encoding 100010d5, want 304018d5

@gopherbot
Copy link

Change https://golang.org/cl/56030 mentions this issue: cmd/internal/obj/arm64: fix assemble msr/mrs bug

@golang golang locked and limited conversation to collaborators Nov 21, 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

2 participants