public inbox for libffi-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Charles Hardin <ckhardin@gmail.com>
To: libffi-discuss@sourceware.org
Subject: libffi on mips with no floating pointer registers/instructions
Date: Tue, 06 Dec 2011 17:30:00 -0000	[thread overview]
Message-ID: <94192E84-5C5E-47E7-BCFE-3DC14429F2A2@gmail.com> (raw)

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

             reply	other threads:[~2011-12-06 17:30 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-06 17:30 Charles Hardin [this message]
2011-12-06 18:05 ` Andrew Pinski
2011-12-07  1:09   ` Andrew Pinski
2011-12-07 11:01   ` Anthony Green

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=94192E84-5C5E-47E7-BCFE-3DC14429F2A2@gmail.com \
    --to=ckhardin@gmail.com \
    --cc=libffi-discuss@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).