-
-
Notifications
You must be signed in to change notification settings - Fork 43
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
Build breaks on armv7, i386 #266
Comments
For me it's not possible to perform build for ARM at this moment. Any ways to reproduce? |
Unfortunately I don't have access to such systems. |
For ARM that seems that inline assembly doesn't like the numbers like |
For building on i386: reproduced the case. void lr_to_ms(float *m, float *s, const float *l, const float *r, size_t count)
{
size_t off;
__asm__ __volatile__
(
: [off] "=&r" (off),
[count] "+g" (count)
: [left] "r"(l), [right] "r" (r),
[mid] "r" (m), [side] "r" (s)
: "cc", "memory"
);
} Here we see that there are five parameters that strictly require registers by using the void lr_to_ms(float *m, float *s, const float *l, const float *r, size_t count)
{
size_t off;
__asm__ __volatile__
(
: [off] "=&r" (off),
[count] "+m" (count)
: [left] "r"(l), [right] "r" (r),
[mid] "r" (m), [side] "r" (s)
: "cc", "memory"
);
} Fixes problem. I think, it is a good reason to report a but to clang's upstream. I'll try to provide the workaround. |
Updated code to make it properly compile for i386 using CLANG compiler: |
Updated the code. Verified build on 32-bit ARM: |
Additionally, made possible build for AArch64. |
I'll try it when these changes get into release. |
Available in 1.2.3 release! |
On armv7:
It also breaks on i386 with the error: inline assembly requires more registers than available.
Version: 1.2.1
clang-13
FreeBSD 13.1
The text was updated successfully, but these errors were encountered: