RPI3, error: invalid operand in inline asm: 'rev16 ${0:w}, ${1:w}'
bob prohaska
fbsd at www.zefox.net
Tue Apr 2 02:00:53 UTC 2019
On Sat, Mar 30, 2019 at 05:50:35PM +0000, John F Carr wrote:
>
>
> > On Mar 30, 2019, at 11:23 , bob prohaska <fbsd at www.zefox.net> wrote:
> >
> > In a recent attempt to compile www/chromium on an RPI3 running r345516
> > compilation stopped with repeated reports of
> >
> > /usr/include/machine/endian.h:89:19: error: invalid operand in inline asm: 'rev16 ${0:w}, ${1:w}'
> >
> > Chromium compiled on the same host a couple of months ago, but the
> > executable failed on a runtime library error. Now attempts to upgrade
> > stop during compilation. Ports are presently at revision 496949.
> >
> > Thanks for reading, and any guidance.
> >
> > bob prohaska
>
> The swap function at that line in sys/arm64/include/endian.h doesn't look right to me. I think it should read
>
> __asm("rev16 %w0, %w1\n" : "=r" (ret) : "r" (w));
>
> instead of
>
> __asm __volatile("rev16 %w0, %w1\n" : "=&r" (ret), "+r" (v));
>
> Two changes: (1) it doesn't need to be volatile because it has no side effects and (2) the constraints and lack of explicit input operand are wrong. The other swap functions should have similar changes.
>
Apologies for being obtuse, but is that suggestive of a problem with the
host system, or a problem with the port?
Thanks for reading!
bob prohaska
More information about the freebsd-arm
mailing list