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

cleanup: Fix assembly go vet issues #83

Open
Yawning opened this issue Aug 10, 2021 · 1 comment
Open

cleanup: Fix assembly go vet issues #83

Yawning opened this issue Aug 10, 2021 · 1 comment
Labels
blocked Blocked on other work

Comments

@Yawning
Copy link
Contributor

Yawning commented Aug 10, 2021

# github.com/oasisprotocol/curve25519-voi/curve
curve/edwards_vector_amd64.s:195:1: [amd64] vecConditionalSelect_AVX2: wrong argument size 32; expected $...-28
curve/edwards_vector_amd64.s:201:1: [amd64] vecConditionalSelect_AVX2: invalid VPBROADCASTD of mask+24(FP); uint32 is 4-byte value
curve/window_amd64.s:9:1: [amd64] lookupAffineNiels: wrong argument size 24; expected $...-17
curve/window_amd64.s:135:1: [amd64] lookupCached: wrong argument size 24; expected $...-17

As far as I can tell:

  • Argument sizes are an avo issue since it's autogenerating that from the function signature.
  • The VPBROADCASTD issue is a go vet bug, because it assumes opcodes use the messed up Go dialect suffixes where D means 8-bytes.

While all of these are annoying, I think it's ok to ignore for now, especially considering that the VPBROADCASTD issue is just a false positive, and I'd rather not edit avo output, so resolving this is blocked on other people fixing their stuff.

@Yawning
Copy link
Contributor Author

Yawning commented Mar 27, 2022

Sigh, my idea of "Ok, I'll just VMOVD the mask first" doesn't make asmdecl shut up either, because of the same issue.

./edwards_vector_amd64.s:201:1: [amd64] vecConditionalSelect_AVX2: invalid VMOVD of mask+24(FP); uint32 is 4-byte value

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked Blocked on other work
Projects
None yet
Development

No branches or pull requests

1 participant