-
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: illegal 4-operand instructions accepted on arm64 #25059
Comments
The fix patch will be submit later. |
Change https://golang.org/cl/109295 mentions this issue: |
It also accepts The reason is that in the backend's optab we never check From3, except for the instructions which do have From3. For a complete fix I think we'd need to add From3 information to optab. |
And this probably applies to some of the other architectures as well. |
But SMULL has compiled into SMADDL |
@mengzhuo, ok, we probably can fix that part first. SMULL is an alias of SMADDL, with addend being the zero register. If we had check of From3 in optab, it would reject the 4-operand SMULL, and things would just work. |
What operating system and processor architecture are you using (
go env
)?master
What did you do?
Three MUL related instructions in t_arm64.s
What did you expect to see?
SMULL/UMULL as it should be
SMULH should failed.
What did you see instead?
The text was updated successfully, but these errors were encountered: