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

Reply via email to