public inbox for libffi-discuss@sourceware.org
 help / color / mirror / Atom feed
* libffi on mips with no floating pointer registers/instructions
@ 2011-12-06 17:30 Charles Hardin
  2011-12-06 18:05 ` Andrew Pinski
  0 siblings, 1 reply; 4+ messages in thread
From: Charles Hardin @ 2011-12-06 17:30 UTC (permalink / raw)
  To: libffi-discuss

All,

It looks like the mips assembly code doesn't ifdef out the floating point loads and store if there is a soft and you get the expected unsupported opcode error.

libtool: compile:  mips64-octeon-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I./include -Iinclude -I./src -I/home/ckhardin/octeon-packages/debian/tmp/usr/include -I. -I./include -Iinclude -I./src -g -I/home/ckhardin/octeon-packages/debian/tmp/usr/include -mabi=64 -march=octeon2 -msoft-float -Wl,--rpath,/home/ckhardin/octeon-packages/debian/tmp/usr/lib/mips64-octeon-linux-gnu -Wa,--gdwarf2 -MT src/mips/n32.lo -MD -MP -MF src/mips/.deps/n32.Tpo -c src/mips/n32.S  -fPIC -DPIC -o src/mips/.libs/n32.o
src/mips/n32.S: Assembler messages:
src/mips/n32.S:115: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.s $f12,0*8($25)'
src/mips/n32.S:118: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.d $f12,0*8($25)'
src/mips/n32.S:128: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.s $f13,1*8($25)'
src/mips/n32.S:131: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.d $f13,1*8($25)'
src/mips/n32.S:141: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.s $f14,2*8($25)'
src/mips/n32.S:144: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.d $f14,2*8($25)'
src/mips/n32.S:154: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.s $f15,3*8($25)'
src/mips/n32.S:157: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.d $f15,3*8($25)'
src/mips/n32.S:167: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.s $f16,4*8($25)'
src/mips/n32.S:170: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.d $f16,4*8($25)'
src/mips/n32.S:180: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.s $f17,5*8($25)'
src/mips/n32.S:183: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.d $f17,5*8($25)'
src/mips/n32.S:193: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.s $f18,6*8($25)'
src/mips/n32.S:196: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.d $f18,6*8($25)'
src/mips/n32.S:206: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.s $f19,7*8($25)'
src/mips/n32.S:209: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.d $f19,7*8($25)'
src/mips/n32.S:235: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.s $f0,0($12)'
src/mips/n32.S:242: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.d $f0,0($12)'
src/mips/n32.S:249: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.d $f0,0($12)'
src/mips/n32.S:256: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.s $f0,0($12)'
src/mips/n32.S:263: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.d $f0,0($12)'
src/mips/n32.S:264: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.d $f2,8($12)'
src/mips/n32.S:271: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.s $f0,0($12)'
src/mips/n32.S:272: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.s $f2,4($12)'
src/mips/n32.S:279: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.d $f0,0($12)'
src/mips/n32.S:280: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.s $f2,8($12)'
src/mips/n32.S:287: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.s $f0,0($12)'
src/mips/n32.S:288: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.d $f2,8($12)'
src/mips/n32.S:448: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.d $f12,(4*8)($sp)'
src/mips/n32.S:449: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.d $f13,(5*8)($sp)'
src/mips/n32.S:450: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.d $f14,(6*8)($sp)'
src/mips/n32.S:451: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.d $f15,(7*8)($sp)'
src/mips/n32.S:452: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.d $f16,(8*8)($sp)'
src/mips/n32.S:453: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.d $f17,(9*8)($sp)'
src/mips/n32.S:454: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.d $f18,(10*8)($sp)'
src/mips/n32.S:455: Error: opcode not supported on this processor: octeon2 (mips64r2) `s.d $f19,(11*8)($sp)'
src/mips/n32.S:477: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.s $f0,(2*8)($sp)'
src/mips/n32.S:482: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.d $f0,(2*8)($sp)'
src/mips/n32.S:487: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.d $f0,(2*8)($sp)'
src/mips/n32.S:492: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.s $f0,(2*8)($sp)'
src/mips/n32.S:497: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.d $f0,(2*8)($sp)'
src/mips/n32.S:498: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.d $f2,(3*8)($sp)'
src/mips/n32.S:503: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.s $f0,(2*8)($sp)'
src/mips/n32.S:504: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.s $f2,(3*8)($sp)'
src/mips/n32.S:509: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.d $f0,(2*8)($sp)'
src/mips/n32.S:510: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.s $f2,(3*8)($sp)'
src/mips/n32.S:515: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.s $f0,(2*8)($sp)'
src/mips/n32.S:516: Error: opcode not supported on this processor: octeon2 (mips64r2) `l.d $f2,(3*8)($sp)'
make[3]: *** [src/mips/n32.lo] Error 1
make[3]: Leaving directory `/home/ckhardin/octeon-packages/ffi/libffi'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/ckhardin/octeon-packages/ffi/libffi'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/ckhardin/octeon-packages/ffi/libffi'
make: *** [ffi-build] Error 2

It looks like the ABI determines that the that hard float is not available, but the assembly always includes the instructions. I checked the github and didn't find a patch for this - is it a known issue or suppose to be solve in another fashion. The arm appears to use a #ifdef for the floating point instructions.

Thanks in advance,
Charles

--
This email is probably not that important

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: libffi on mips with no floating pointer registers/instructions
  2011-12-06 17:30 libffi on mips with no floating pointer registers/instructions Charles Hardin
@ 2011-12-06 18:05 ` Andrew Pinski
  2011-12-07  1:09   ` Andrew Pinski
  2011-12-07 11:01   ` Anthony Green
  0 siblings, 2 replies; 4+ messages in thread
From: Andrew Pinski @ 2011-12-06 18:05 UTC (permalink / raw)
  To: Charles Hardin; +Cc: libffi-discuss

On Tue, Dec 6, 2011 at 9:30 AM, Charles Hardin <ckhardin@gmail.com> wrote:
> All,
>
> It looks like the mips assembly code doesn't ifdef out the floating point loads and store if there is a soft and you get the expected unsupported opcode error.

This is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50051 .  You can
look at the bug report for a simple patch.

Thanks,
Andrew Pinski

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: libffi on mips with no floating pointer registers/instructions
  2011-12-06 18:05 ` Andrew Pinski
@ 2011-12-07  1:09   ` Andrew Pinski
  2011-12-07 11:01   ` Anthony Green
  1 sibling, 0 replies; 4+ messages in thread
From: Andrew Pinski @ 2011-12-07  1:09 UTC (permalink / raw)
  To: Charles Hardin; +Cc: libffi-discuss

On Tue, Dec 6, 2011 at 10:04 AM, Andrew Pinski <pinskia@gcc.gnu.org> wrote:
> On Tue, Dec 6, 2011 at 9:30 AM, Charles Hardin <ckhardin@gmail.com> wrote:
>> All,
>>
>> It looks like the mips assembly code doesn't ifdef out the floating point loads and store if there is a soft and you get the expected unsupported opcode error.
>
> This is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50051 .  You can
> look at the bug report for a simple patch.

Also this is partly an issue with the assembler which we (Cavium)
provides.  I am in the middle of posting upstream the Octeon2 support
to binutils and GCC.

Thanks,
Andrew Pinski

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: libffi on mips with no floating pointer registers/instructions
  2011-12-06 18:05 ` Andrew Pinski
  2011-12-07  1:09   ` Andrew Pinski
@ 2011-12-07 11:01   ` Anthony Green
  1 sibling, 0 replies; 4+ messages in thread
From: Anthony Green @ 2011-12-07 11:01 UTC (permalink / raw)
  To: libffi-discuss

On 12/6/2011 1:04 PM, Andrew Pinski wrote:
> On Tue, Dec 6, 2011 at 9:30 AM, Charles Hardin<ckhardin@gmail.com>  wrote:
>> All,
>>
>> It looks like the mips assembly code doesn't ifdef out the floating point loads and store if there is a soft and you get the expected unsupported opcode error.
> This is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50051 .  You can
> look at the bug report for a simple patch.
>
> Thanks,
> Andrew Pinski

Thanks Andrew.  I'm following up in the ticket.

AG

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-12-07 11:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-06 17:30 libffi on mips with no floating pointer registers/instructions Charles Hardin
2011-12-06 18:05 ` Andrew Pinski
2011-12-07  1:09   ` Andrew Pinski
2011-12-07 11:01   ` Anthony Green

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).