From: Scott D. <sc...@da...> - 2005-11-23 22:03:24
|
Kim Lux wrote: > Here is a HOWTO I've made to help me and others do a port. I'd like > your comments. <snip> Hi Kim, I was in the process of replying to the personal request you sent to me when I saw your post. You covered everything I was going to say and then some! The only thing I can add is a little perspective. When making the initial changes from whichever port you chose to the xgate port, you'll probably want to apply an invariance coding technique (I just made this term up...). By this I mean attempt to make a literal one-for-one mapping of all common components (e.g. changing MOV instructions to MOVE instructions, or whatever). For things that don't have one-to-one mapping you can still emit the original port's code -or- even better debug statements which can serve as an indicator for the things that need to be changed. When I did the very first PIC port, I applied this technique and with int a few weeks had some very preliminary code compiling. At the time there were no regression tests for SDCC, so I wrote some of my own (in fact, there still in src/regression bit rotting away...). The regression tests allow you to easily focus on corner cases. I imagine after about 200 of coding the PIC port was of alpha quality. I spent probably another 200 hours getting a back end optimizer working, but at that point the code was still alpha quality. I have no idea how much time has been spent on the PIC ports now, but I suspect probably more than 1000 hours or more have been invested. And based on the bug reports I see it appears the PIC port has dramatically improved perhaps to high beta quality. Expect to invest some time! And good luck! Scott |