On 11/30/2013 12:33 AM, Jim Leonard wrote:
On 11/29/2013 3:45 PM, Nikolay Nikolov wrote:
It should be functional, although it does break occasionally, so you
should always keep the latest working version if you plan on using it. I
run the testsuite weekly and try to fix any regressions, but
occasionally it may take longer if I'm busy. There's a wiki page
dedicated to the i8086 port here with more details:

http://wiki.freepascal.org/DOS

Thanks, I look forward to playing with this. I'm curious if the optimizations in FPC beat those in TP (my guess is very likely, since the optimizations in TP were only those that could be implemented in a single pass, with no peephole optimization).
Note that right now FPC is still usually slower than TP, mainly because TP's RTL is written mostly in optimized asm, while the FPC RTL is mostly written in pascal. But, of course, you can always help with patches :) Also, there's still no peephole optimizer for i8086 (there's a jump optimizer, though) and regvars don't yet work (they produce wrong code for a reason I've not discovered yet, so they're disabled from -O2. They also cause problems with the register allocator). But eventually, in the long run, FPC should be able to produce much better code than TP. However, I'm still not done with all the memory models yet, so I'm still focusing mostly on testing for correctness, getting more code to compile, fixing bugs, etc. and not so much on optimization. Getting the medium memory model to work was much harder than I expected and I expect that large & compact will be even harder (although, the good part is that we'll probably get both of them working at the same time, since the actual new feature is support for far data; far code is already supported), so my current plan is this:

1) get as much code working under the medium memory model, e.g. get free vision working 2) improve the far pointer support, until it becomes stable enough to be the default pointer type, so we can start the large & compact memory models
3) get the large & compact memory models working and stabilize them

If I'm the only person working on the i8086 port, I'm guessing this will take anything between 6 months to a year, so I'll probably not have much time to work on the optimizer. But then, again, I may get distracted while trying to get something to work and do some work on optimization, so I can get it working fast enough on a vintage machine or to get something to fit in 64kb.

Another distraction I currently have is fixing the 8087 support, since I got one from eBay and installed it on my IBM 5150. The bad thing about 8087, though, is the fact that we cannot easily run automated tests on it. Normally, I run the FPC testsuite with dosbox, which emulates a 387+.

Nikolay
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to