remap/arm: Adjust inline asm constraints
authorKhem Raj <raj.khem@gmail.com>
Thu, 5 Mar 2020 19:48:28 +0000 (11:48 -0800)
committerKhem Raj <raj.khem@gmail.com>
Thu, 5 Mar 2020 21:11:27 +0000 (13:11 -0800)
commit3450d1fcfe8a8f84553ab299cd96ae0705ddffbe
tree6e11b02800e61a54f5e4ada97190fe1bfcb288d7
parent4da4670fdb9a09199fb5d3bfaee252b2f4f13128
remap/arm: Adjust inline asm constraints

gcc10 can effectively emit single precision registers if right
operand modifier constraint is not in use

This results in assembler rejecting the code

/tmp/ccEG4QpI.s:646: Error: VFP/Neon double precision register expected -- `vtbl.8 d3,{d0,d1},s8'
/tmp/ccEG4QpI.s:678: Error: invalid instruction shape -- `vmul.f32 d0,d0,s8'

Therefore add %P qualifier to request double registers sinece 'w' could
mean variable could be stored in s0..s14 and GCC defaults to printing out s0..s14.
Note those registers map to d0..d7 also.

Output generated is exactly same with gcc9, and it also now compiles
with gcc10

Its not documented well in gcc docs and there is a ticket for that
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84343

Signed-off-by: Khem Raj <raj.khem@gmail.com>
src/pulsecore/remap_neon.c