I chose to do this because of what I've read in the TI MSP430x4xx Family 
User Guide:

"There are three possibilities when choosing between an MSP430 and
MSP430X instruction:

 To use only the MSP430 instructions: The only exceptions are the CALLA
and the RETA instruction. This can be done if a few, simple rules are met:
         Placement of all constants, variables, arrays, tables, and data 
in the
        lower 64 KB. This allows the use of MSP430 instructions with 
16-bit
        addressing for all data accesses. No pointers with 20-bit 
addresses
        are needed.
         Placement of subroutine constants immediately after the 
subroutine
        code. This allows the use of the symbolic addressing mode with its
        16-bit index to reach addresses within the range of PC ±32 KB.

 To use only MSP430X instructions: The disadvantages of this method are
the reduced speed due to the additional CPU cycles and the increased
program space due to the necessary extension word for any double
operand instruction.

 Use the best fitting instruction where needed"

And that is what I'm trying to do. 
I managed to emit the calla instruction, and I'm working on the reta. 
After that I should be adding the binutils support for using 20-bit 
addresses (it will be quite a challenge.

Best regards,
Oszkar




I'm not planning to add 20-bit data instructions, nor 20-bit function 
pointers. 
I will only have 16-bit function pointers. Those functions will be forced 
to be located in the lower 64K 

Best regards, 
Oszkar 



Reply via email to