separated floating point on 11's

utzoo!decvax!ucbvax!unix-wizards utzoo!decvax!ucbvax!unix-wizards
Fri Oct 16 00:17:34 AEST 1981


>From csk at UCLA-Security Thu Oct 15 23:05:15 1981
The pdp11 44,45, and 70 have a glitch in the hardware design such that
a user mode program can not read it's code space when running separated.
(the mfpi instruction which is supposed to do that doesn't when current
and previous mode are both user... if anyone really cares, I can explain
why, but just chalk it up to dec stupidity)

Anyhow, at UCLA all our pdp11s don't have floating point.  In order to get
large floating point programs to work, we added a system call which lets
a process get a word from instruction space (I suspect this is equivalent
to the fetchi call mentioned by CSVAX.michael).  We then modified the
unix floating point simulator to use this call and now we run separated
floating point just fine.  Well, almost.  You see, fetching words that
way is real SLOW since any system call causes quite a lot of overhead
saving registers, copying arguments, switching on the call number, etc.
If you can get by with the programs non-separated, you will run a whole
lot faster.  Otherwise, there isn't any easy choice.

There is another solution for 11/45s and 70s, (I don't know if this
solution is availble on 44's) but it will cause you trouble with
your maintenance vendor.... There is a modification you can make to
one of the boards (cutting a trace, adding a wire, something on that order)
which will make the mfpi instruction do the right thing in user mode.
We figured it wasn't worth the maintenance hassles.  If you really need
fast floating point, buy it.

--charley kline



More information about the Comp.unix.wizards mailing list