This is the mail archive of the libffi-discuss@sourceware.org mailing list for the libffi project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

libffi on mips with no floating pointer registers/instructions


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]