Discussion:
[9fans] 5i floating point?
(too old to reply)
Comeau At9Fans
2012-05-09 14:22:03 UTC
Permalink
From 9vx.OSX if I compile this

#include <u.h>
#include <libc.h>

void main(void)
{
float f = 99.99;
exits(0);
}

with 5c/5l and then 5i it, it gives:

undefined instruction trap pc #102c inst ed9b0100 class 92

Is floating point supported with 5i?
--
Greg Comeau / 4.3.10.1 with C++0xisms now in beta!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
c***@gmx.de
2012-05-09 14:36:30 UTC
Permalink
aiju wrote an arm emulator for 9front some time ago and
i remember he implemented floating point on it.

might have a look there:

http://code.google.com/p/plan9front/source/browse/sys/src/cmd/5e

--
cinap
Comeau At9Fans
2012-05-09 14:47:11 UTC
Permalink
Post by c***@gmx.de
aiju wrote an arm emulator for 9front some time ago and
i remember he implemented floating point on it.
http://code.google.com/p/plan9front/source/browse/sys/src/cmd/5e
Thanks. What's the most sane way of downloading it to 9vx.OSX?
--
Greg Comeau / 4.3.10.1 with C++0xisms now in beta!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
David du Colombier
2012-05-09 15:11:16 UTC
Permalink
Post by Comeau At9Fans
Post by c***@gmx.de
http://code.google.com/p/plan9front/source/browse/sys/src/cmd/5e
Thanks. What's the most sane way of downloading it to 9vx.OSX?
mkdir /sys/src/cmd/5e
cd /sys/src/cmd/5e
for(i in 5e.c arm.c dat.h fns.h fpa.c fs.c mkfile proc.c seg.c sys.c util.c)
hget -o $i http://plan9front.googlecode.com/hg/sys/src/cmd/5e/$i
--
David du Colombier
Comeau At9Fans
2012-05-09 15:24:14 UTC
Permalink
Ok, linking gives:

main: undefined: ainc in main

Looks to be a function (which also seems to be undeclared in 5e.c), anybody
know where it is located?
--
Greg Comeau / 4.3.10.1 with C++0xisms now in beta!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
David du Colombier
2012-05-09 15:34:56 UTC
Permalink
Post by Comeau At9Fans
main: undefined: ainc in main
Looks to be a function (which also seems to be undeclared in 5e.c),
anybody know where it is located?
It's defined in the libc. You can add it
to /sys/include/libc.h if you wish.
--
David du Colombier
Comeau At9Fans
2012-05-09 15:54:32 UTC
Permalink
Post by David du Colombier
Post by Comeau At9Fans
main: undefined: ainc in main
Looks to be a function (which also seems to be undeclared in 5e.c),
anybody know where it is located?
It's defined in the libc. You can add it
to /sys/include/libc.h if you wish.
If I nm /386/lib/libc.a | grep ainc

it returns nothing.
--
Greg Comeau / 4.3.10.1 with C++0xisms now in beta!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
David du Colombier
2012-05-09 16:03:19 UTC
Permalink
Post by Comeau At9Fans
If I nm /386/lib/libc.a | grep ainc
it returns nothing.
Your libc is obviously not up-do-date.

term% nm /n/sources/plan9/386/lib/libc.a | grep ainc
atom.8: T ainc

See /n/sources/plan9/sys/src/libc/386/atom.s
--
David du Colombier
Comeau At9Fans
2012-05-09 18:06:57 UTC
Permalink
Post by David du Colombier
Post by Comeau At9Fans
If I nm /386/lib/libc.a | grep ainc
it returns nothing.
Your libc is obviously not up-do-date.
term% nm /n/sources/plan9/386/lib/libc.a | grep ainc
atom.8: T ainc
See /n/sources/plan9/sys/src/libc/386/atom.s
I have it built and it seems to be working, at least with APE built apps,
but I think it's not with non-APE due to something I'm doing. Thanks all.
--
Greg Comeau / 4.3.10.1 with C++0xisms now in beta!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
Comeau At9Fans
2012-05-10 12:24:18 UTC
Permalink
Anybody with an ARM Plan 9 willing to run a binary for me? It just emits a
few lines out of output and I promise it is not a virus.
--
Greg Comeau / 4.3.10.1 with C++0xisms now in beta!
Comeau C/C++ ONLINE ==> http://www.comeaucomputing.com/tryitout
World Class Compilers: Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?
erik quanstrom
2012-05-09 16:36:06 UTC
Permalink
Post by c***@gmx.de
aiju wrote an arm emulator for 9front some time ago and
i remember he implemented floating point on it.
http://code.google.com/p/plan9front/source/browse/sys/src/cmd/5e
why was it done this way rather than extending 5i?

also, *which* floating point does it emulate. like intel,
there is a buffet of choices.

- erik
Charles Forsyth
2012-05-09 17:18:36 UTC
Permalink
the 7500's FPA.
Post by erik quanstrom
also, *which* floating point does it emulate.
Ethan Grammatikidis
2012-05-14 03:34:58 UTC
Permalink
On Wed, 9 May 2012 12:36:06 -0400
Post by erik quanstrom
Post by c***@gmx.de
aiju wrote an arm emulator for 9front some time ago and
i remember he implemented floating point on it.
why was it done this way rather than extending 5i?
my memory of the irc discussion over it is vague now, but i think 5e is
substantially different. patching 5i was considered, but i think it was
found wanting in more areas than just floating point.
Charles Forsyth
2012-05-14 08:12:42 UTC
Permalink
They do different things. the ?i series is mainly intended to debug and
improve the compilers:
it emulates only so much of the architecture and system, enough to get the
compiler and libc going.

5e's a nice bit of work (except for the limitation to little-endian host).
the emulation of /proc was interesting.
5e is more useful if you're trying to debug an arm program on an Intel,
hence the interest in
emulating system calls. it's probably not as useful for compiler debugging.
when debugging the compilers it's convenient to run 5i with $ti :r and just
let it go,
rather than interacting with it by setting breakpoints etc through /proc.
erik quanstrom
2012-05-09 14:30:48 UTC
Permalink
yes. the instructions are not implemented. unfortunately abort()
was called without flushing the output, so the error message wasn't
printed.

; diffy -c /sys/src/cmd/5i/run.c
/n/dump/2012/0509/sys/src/cmd/5i/run.c:260,265 - /sys/src/cmd/5i/run.c:260,266
{
Bprint(bioout, "undefined instruction trap pc #%lux inst %.8lux class %d\n",
reg.r[REGPC], inst, reg.class);
+ Bflush(bioout);
abort();
longjmp(errjmp, 0);
}
; 5i 5.armfloat
5i
:r
undefined instruction trap pc #102c inst ed9b0100 class 92
5i 12535: suicide: sys: trap: fault read addr=0x0 pc=0xb2c5

- erik
Continue reading on narkive:
Loading...