I am using the current msp430X branch and find it quite useful. The overhead associated with making all function calls 20 bits (for chips that support it) is very small and probably the way to go. The main functions that fail at this are ISRs which are 16 bits but these are only called by the hardware.
The main problem with 20 bit function calls is that it forces function pointers to 20 bits, which means storing them in registers requires saving 20 bit registers. Since C normally have the callee save state that means just allowing 20 bit function pointers will force all callees to save all registers that might store a function as 20 bits. I avoided this problem by including a function proxy in 16 bit address space for each indirectly addressed function that branches to the 20 bit address. Then each indirectly addressed function has an address in 16-bit space for indirect access and 20 bit space for direct access. This works very well except that my implementation is manual (macro based) and does not do type checking so it is error prone. A compiler based method would be much better. Robert ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Mspgcc-users mailing list Mspgcc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mspgcc-users