OK,
here is some code that shows the problem.
I use OpenSUSE LEAP 42.1 as the operating system and have both compilers 
installed in /opt under 2 different names ("msp430-elf-gcc" for the TI 
and "msp-gcc" for the 'old' P.A.Bigot compiler).
Hope it's not too much, I've tried to keep it as small as reasonable 
without hiding anything.

The source:
========================================================================================
/*
 
******************************************************************************
 
******************************************************************************
        Compiler test: msp430-elf-gcc
        Includes and Interrupt definition syntax different for 'old' mspgcc
        Otherwise identical
 
******************************************************************************
 
******************************************************************************
  */

#include        <msp430.h>
#include        <stdint.h>

/*
 
******************************************************************************
  Programmer information *** DO NOT USE IFDEFS *** (AWK'ed by avrprog etc)
  OK to comment out with '//'
 
******************************************************************************
  */

#define     MCU_TARGET  msp430g2232

#define     LED         BIT0                                    // LED on P1.0
#define     TXD         BIT1                                    // TXD on P1.1
#define     RXD         BIT2                                    // RXD on P1.2
#define     Bit_time    104                                     // 9600 Baud, 
SMCLK=1MHz (1MHz/9600)=104
#define     Bit_time_5  52                                      // Time for 
half a bit.

volatile    uint16_t    BitCnt;                                 // Bit count, 
used when transmitting byte
volatile    uint16_t    TXByte;                                 // Value sent 
over UART when 
put_char() is called
            uint16_t    result, status, checksum;

/*
 
******************************************************************************
        Write a character to RS232
 
******************************************************************************
  */

static  void put_char(uint8_t databyte)
{
     TXByte = databyte;
     TXByte |= 0x100;                                           // Add stop bit 
(= 1)
     TXByte <<= 1;                                              // Add start 
bit (= 0)
     BitCnt = 10;                                               // Load Bit 
counter, 8 bits + start + stop

     P1OUT |= TXD;
     TACTL = TASSEL_2 + MC_2;                                   // SMCLK, 
continuous mode
     TACCR0 = TAR;                                              // Initialize 
compare register
     TACCR0 += Bit_time;                                                // Set 
time of first bit
     TACCTL0 =  CCIE;                                           // Enable 
interrupts
     while (TACCTL0 & CCIE ) {};                                        // Wait 
for TX completion (by the 
interrupt)
}

/*
 
******************************************************************************
        Main
 
******************************************************************************
  */

void main(void)
{
     WDTCTL = WDTPW | WDTHOLD;                                  // Stop WDT

     BCSCTL1 = CALBC1_1MHZ;                                     // Set range
     DCOCTL = CALDCO_1MHZ;                                      // SMCLK = DCO 
= 1MHz

     P1DIR |= TXD | LED;

     _NOP();
     _EINT();                                                   // interrupts 
enabled

     while(1)
     {
        put_char('+');
     }
}
/*
 
******************************************************************************
  Timer A0 interrupt service routine (RS-232 9600 Baud Tx).
  Handles Tx bit timing.
 
******************************************************************************
  */

void __attribute__ ((interrupt (TIMER0_A0_VECTOR))) TIMER0_A0_ISR(void)
{
     P1OUT &= ~LED;                                             // Turn LED on 
(start of interrupt)
     TACCR0 += Bit_time;                                                // Add 
Offset to TACCR0
     if (BitCnt == 0)                                           // If all bits 
TXed
     {
        TACTL = TASSEL_2;                                       // SMCLK 
selected, timer off (for power 
consumption)
        TACCTL0 &= ~CCIE ;                                      // Disable 
interrupt
     }
     else
     {
        if (TXByte & 0x01)
            P1OUT |= TXD;
        else
            P1OUT &= ~TXD;

        TXByte >>= 1;
        BitCnt--;
     }
     P1OUT |= LED;                                              // Turn LED on 
(end of interrupt)
}
========================================================================================

The compile command for msp430-elf-gcc (taken from running my 'make').

msp430-elf-gcc -I/opt/msp430-gcc/include/ -O2 -Wall -g -mmcu=msp430g2232 
  -Wno-main -minrt -fshort-enums -Wno-unused-function   -c -o main.o main.c
msp430-elf-gcc -I/opt/msp430-gcc/include/ -O2 -Wall -g -mmcu=msp430g2232 
  -Wno-main -minrt -fshort-enums -Wno-unused-function -Wl,-Map,main.map 
-o main.elf main.o
msp430-elf-objdump -h -S main.elf > main.lst

The compile command for 'old' mspgcc (taken from running my 
'make').msp430-gcc -Os -Wall -g -mmcu=msp430g2232  -Wno-main 
-fshort-enums -Wno-unused-function   -c -o main.o main.c
msp430-gcc -Os -Wall -g -mmcu=msp430g2232  -Wno-main -fshort-enums 
-Wno-unused-function -Wl,-Map,main.map -o main.elf main.o
msp430-objdump -h -S main.elf > main.lst
========================================================================================
Listing for msp430-elf-gcc


main.elf:     file format elf32-msp430

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
   0 __interrupt_vector_10 00000002  0000fff2  0000fff2  000002a2  2**0
                   CONTENTS, ALLOC, LOAD, READONLY, CODE
   1 __reset_vector 00000002  0000fffe  0000fffe  000002a6  2**0
                   CONTENTS, ALLOC, LOAD, READONLY, DATA
   2 .rodata       00000000  0000f800  0000f800  000002a8  2**0
                   CONTENTS, ALLOC, LOAD, DATA
   3 .rodata2      00000000  0000f800  0000f800  000002a8  2**0
                   CONTENTS
   4 .text         000001cc  0000f800  0000f800  000000d4  2**1
                   CONTENTS, ALLOC, LOAD, READONLY, CODE
   5 .data         00000000  00000200  0000f9cc  000002a0  2**0
                   CONTENTS, ALLOC, LOAD, DATA
   6 .bss          0000000a  00000200  0000f9cc  000002a0  2**1
                   ALLOC
   7 .noinit       00000000  0000020a  0000020a  000002a8  2**0
                   CONTENTS
   8 .heap         00000004  0000020a  0000f9cc  000002a2  2**0
                   ALLOC
   9 .MSP430.attributes 00000017  00000000  00000000  000002a8  2**0
                   CONTENTS, READONLY
  10 .comment      00000049  00000000  00000000  000002bf  2**0
                   CONTENTS, READONLY
  11 .debug_aranges 00000020  00000000  00000000  00000308  2**0
                   CONTENTS, READONLY, DEBUGGING
  12 .debug_info   00000c87  00000000  00000000  00000328  2**0
                   CONTENTS, READONLY, DEBUGGING
  13 .debug_abbrev 000001c1  00000000  00000000  00000faf  2**0
                   CONTENTS, READONLY, DEBUGGING
  14 .debug_line   0000026f  00000000  00000000  00001170  2**0
                   CONTENTS, READONLY, DEBUGGING
  15 .debug_frame  000000a0  00000000  00000000  000013e0  2**2
                   CONTENTS, READONLY, DEBUGGING
  16 .debug_str    0000074c  00000000  00000000  00001480  2**0
                   CONTENTS, READONLY, DEBUGGING

Disassembly of section __interrupt_vector_10:

0000fff2 <__interrupt_vector_10>:
     fff2:      8a f8           interrupt service routine at 0xf88a

Disassembly of section .text:

0000f800 <__crt0_start>:
     f800:      31 40 00 03     mov     #768,   r1      ;#0x0300

0000f804 <__crt0_init_bss>:
     f804:      3c 40 00 02     mov     #512,   r12     ;#0x0200

0000f808 <.Loc.74.1>:
     f808:      0d 43           clr     r13             ;

0000f80a <.Loc.75.1>:
     f80a:      3e 40 0a 00     mov     #10,    r14     ;#0x000a

0000f80e <.Loc.79.1>:
     f80e:      b0 12 b8 f9     call    #63928          ;#0xf9b8

0000f812 <__crt0_call_just_main>:
     f812:      0c 43           clr     r12             ;

0000f814 <.Loc.181.1>:
     f814:      b0 12 18 f8     call    #63512          ;#0xf818

0000f818 <main>:
#include        "twi.c"
#include        "util.c"

void main(void)
{
     WDTCTL = WDTPW | WDTHOLD;                                  // Stop WDT
     f818:      b2 40 80 5a     mov     #23168, &0x0120 ;#0x5a80
     f81c:      20 01

0000f81e <.Loc.87.1>:

     BCSCTL1 = CALBC1_1MHZ;                                     // Set range
     f81e:      d2 42 ff 10     mov.b   &0x10ff,&0x0057 ;0x10ff
     f822:      57 00

0000f824 <.Loc.88.1>:
     DCOCTL = CALDCO_1MHZ;                                      // SMCLK = DCO 
= 1MHz
     f824:      d2 42 fe 10     mov.b   &0x10fe,&0x0056 ;0x10fe
     f828:      56 00

0000f82a <.Loc.90.1>:

     P1DIR |= TXD | LED;
     f82a:      f2 d0 03 00     bis.b   #3,     &0x0022 ;
     f82e:      22 00

0000f830 <.Loc.92.1>:

     _NOP();
     f830:      03 43           nop                     

0000f832 <.Loc.93.1>:
     _EINT();                                                   // interrupts 
enabled
     f832:      32 d2           eint                    
     f834:      03 43           nop                     

0000f836 <.LBB4>:
 
******************************************************************************
  */

static  void put_char(uint8_t databyte)
{
     TXByte = databyte;
     f836:      7b 40 2b 00     mov.b   #43,    r11     ;#0x002b

0000f83a <.Loc.62.1>:
     TXByte |= 0x100;                                           // Add stop bit 
(= 1)
     TXByte <<= 1;                                              // Add start 
bit (= 0)
     BitCnt = 10;                                               // Load Bit 
counter, 8 bits + start + stop
     f83a:      7f 40 0a 00     mov.b   #10,    r15     ;#0x000a

0000f83e <.Loc.65.1>:

     P1OUT |= TXD;
     TACTL = TASSEL_2 + MC_2;                                   // SMCLK, 
continuous mode
     f83e:      3e 40 20 02     mov     #544,   r14     ;#0x0220

0000f842 <.Loc.68.1>:
     TACCR0 = TAR;                                              // Initialize 
compare register
     TACCR0 += Bit_time;                                                // Set 
time of first bit
     TACCTL0 =  CCIE;                                           // Enable 
interrupts
     f842:      7d 40 10 00     mov.b   #16,    r13     ;#0x0010

0000f846 <.L3>:
 
******************************************************************************
  */

static  void put_char(uint8_t databyte)
{
     TXByte = databyte;
     f846:      82 4b 02 02     mov     r11,    &0x0202 ;

0000f84a <.Loc.60.1>:
     TXByte |= 0x100;                                           // Add stop bit 
(= 1)
     f84a:      b2 d0 00 01     bis     #256,   &0x0202 ;#0x0100
     f84e:      02 02

0000f850 <.Loc.61.1>:
     TXByte <<= 1;                                              // Add start 
bit (= 0)
     f850:      1c 42 02 02     mov     &0x0202,r12     ;0x0202
     f854:      0c 5c           rla     r12             ;
     f856:      82 4c 02 02     mov     r12,    &0x0202 ;

0000f85a <.Loc.62.1>:
     BitCnt = 10;                                               // Load Bit 
counter, 8 bits + start + stop
     f85a:      82 4f 00 02     mov     r15,    &0x0200 ;

0000f85e <.Loc.64.1>:

     P1OUT |= TXD;
     f85e:      e2 d3 21 00     bis.b   #2,     &0x0021 ;r3 As==10

0000f862 <.Loc.65.1>:
     TACTL = TASSEL_2 + MC_2;                                   // SMCLK, 
continuous mode
     f862:      82 4e 60 01     mov     r14,    &0x0160 ;

0000f866 <.Loc.66.1>:
     TACCR0 = TAR;                                              // Initialize 
compare register
     f866:      92 42 70 01     mov     &0x0170,&0x0172 ;0x0170
     f86a:      72 01

0000f86c <.Loc.67.1>:
     TACCR0 += Bit_time;                                                // Set 
time of first bit
     f86c:      b2 50 68 00     add     #104,   &0x0172 ;#0x0068
     f870:      72 01

0000f872 <.Loc.68.1>:
     TACCTL0 =  CCIE;                                           // Enable 
interrupts
     f872:      82 4d 62 01     mov     r13,    &0x0162 ;

0000f876 <.L2>:
     while (TACCTL0 & CCIE ) {};                                        // Wait 
for TX completion (by the 
interrupt)
     f876:      b2 b0 10 00     bit     #16,    &0x0162 ;#0x0010
     f87a:      62 01
     f87c:      e4 27           jz      $-54            ;abs 0xf846
     f87e:      b2 b0 10 00     bit     #16,    &0x0162 ;#0x0010
     f882:      62 01
     f884:      f8 23           jnz     $-14            ;abs 0xf876
     f886:      30 40 46 f8     br      #0xf846         ;

0000f88a <TIMER0_A0_ISR>:
  Handles Tx bit timing.
 
******************************************************************************
  */

void __attribute__ ((interrupt (TIMER0_A0_VECTOR))) TIMER0_A0_ISR(void)
{
     f88a:      0f 12           push    r15             ;

0000f88c <.LCFI0>:
     f88c:      0e 12           push    r14             ;

0000f88e <.LCFI1>:
     f88e:      0d 12           push    r13             ;

0000f890 <.LCFI2>:
     f890:      0c 12           push    r12             ;

0000f892 <.LCFI3>:
     f892:      0b 12           push    r11             ;

0000f894 <.LCFI4>:
     f894:      0a 12           push    r10             ;

0000f896 <.LCFI5>:
     f896:      09 12           push    r9              ;

0000f898 <.LCFI6>:
     f898:      08 12           push    r8              ;

0000f89a <.LCFI7>:
     f89a:      07 12           push    r7              ;

0000f89c <.LCFI8>:
     f89c:      06 12           push    r6              ;

0000f89e <.LCFI9>:
     f89e:      05 12           push    r5              ;

0000f8a0 <.LCFI10>:
     f8a0:      04 12           push    r4              ;

0000f8a2 <.LCFI11>:
     P1OUT &= ~LED;                                             // Turn LED on 
(start of interrupt)
     f8a2:      d2 c3 21 00     bic.b   #1,     &0x0021 ;r3 As==01

0000f8a6 <.Loc.118.1>:
     TACCR0 += Bit_time;                                                // Add 
Offset to TACCR0
     f8a6:      b2 50 68 00     add     #104,   &0x0172 ;#0x0068
     f8aa:      72 01

0000f8ac <.Loc.119.1>:
     if (BitCnt == 0)                                           // If all bits 
TXed
     f8ac:      1c 42 00 02     mov     &0x0200,r12     ;0x0200
     f8b0:      0c 93           cmp     #0,     r12     ;r3 As==00
     f8b2:      20 24           jz      $+66            ;abs 0xf8f4

0000f8b4 <.Loc.126.1>:
        TACTL = TASSEL_2;                                       // SMCLK 
selected, timer off (for power 
consumption)
        TACCTL0 &= ~CCIE ;                                      // Disable 
interrupt
     }
     else
     {
        if (TXByte & 0x01)
     f8b4:      92 b3 02 02     bit     #1,     &0x0202 ;r3 As==01
     f8b8:      19 20           jnz     $+52            ;abs 0xf8ec

0000f8ba <.Loc.129.1>:
            P1OUT |= TXD;
        else
            P1OUT &= ~TXD;
     f8ba:      e2 c3 21 00     bic.b   #2,     &0x0021 ;r3 As==10

0000f8be <.L11>:

        TXByte >>= 1;
     f8be:      1c 42 02 02     mov     &0x0202,r12     ;0x0202
     f8c2:      b0 12 3c f9     call    #63804          ;#0xf93c
     f8c6:      82 4c 02 02     mov     r12,    &0x0202 ;

0000f8ca <.Loc.132.1>:
        BitCnt--;
     f8ca:      b2 53 00 02     add     #-1,    &0x0200 ;r3 As==11

0000f8ce <.L9>:
     }
     P1OUT |= LED;                                              // Turn LED on 
(end of interrupt)
     f8ce:      d2 d3 21 00     bis.b   #1,     &0x0021 ;r3 As==01

0000f8d2 <.Loc.135.1>:
}
     f8d2:      34 41           pop     r4              ;
     f8d4:      35 41           pop     r5              ;
     f8d6:      36 41           pop     r6              ;
     f8d8:      37 41           pop     r7              ;
     f8da:      38 41           pop     r8              ;
     f8dc:      39 41           pop     r9              ;
     f8de:      3a 41           pop     r10             ;
     f8e0:      3b 41           pop     r11             ;
     f8e2:      3c 41           pop     r12             ;
     f8e4:      3d 41           pop     r13             ;
     f8e6:      3e 41           pop     r14             ;
     f8e8:      3f 41           pop     r15             ;
     f8ea:      00 13           reti                    

0000f8ec <.L13>:
        TACCTL0 &= ~CCIE ;                                      // Disable 
interrupt
     }
     else
     {
        if (TXByte & 0x01)
            P1OUT |= TXD;
     f8ec:      e2 d3 21 00     bis.b   #2,     &0x0021 ;r3 As==10
     f8f0:      30 40 be f8     br      #0xf8be         ;

0000f8f4 <.L12>:
{
     P1OUT &= ~LED;                                             // Turn LED on 
(start of interrupt)
     TACCR0 += Bit_time;                                                // Add 
Offset to TACCR0
     if (BitCnt == 0)                                           // If all bits 
TXed
     {
        TACTL = TASSEL_2;                                       // SMCLK 
selected, timer off (for power 
consumption)
     f8f4:      b2 40 00 02     mov     #512,   &0x0160 ;#0x0200
     f8f8:      60 01

0000f8fa <.Loc.122.1>:
        TACCTL0 &= ~CCIE ;                                      // Disable 
interrupt
     f8fa:      b2 f0 ef ff     and     #65519, &0x0162 ;#0xffef
     f8fe:      62 01
     f900:      30 40 ce f8     br      #0xf8ce         ;

0000f904 <__mspabi_srli_15>:
     f904:      12 c3           clrc                    
     f906:      0c 10           rrc     r12             ;

0000f908 <__mspabi_srli_14>:
     f908:      12 c3           clrc                    
     f90a:      0c 10           rrc     r12             ;

0000f90c <__mspabi_srli_13>:
     f90c:      12 c3           clrc                    
     f90e:      0c 10           rrc     r12             ;

0000f910 <__mspabi_srli_12>:
     f910:      12 c3           clrc                    
     f912:      0c 10           rrc     r12             ;

0000f914 <__mspabi_srli_11>:
     f914:      12 c3           clrc                    
     f916:      0c 10           rrc     r12             ;

0000f918 <__mspabi_srli_10>:
     f918:      12 c3           clrc                    
     f91a:      0c 10           rrc     r12             ;

0000f91c <__mspabi_srli_9>:
     f91c:      12 c3           clrc                    
     f91e:      0c 10           rrc     r12             ;

0000f920 <__mspabi_srli_8>:
     f920:      12 c3           clrc                    
     f922:      0c 10           rrc     r12             ;

0000f924 <__mspabi_srli_7>:
     f924:      12 c3           clrc                    
     f926:      0c 10           rrc     r12             ;

0000f928 <__mspabi_srli_6>:
     f928:      12 c3           clrc                    
     f92a:      0c 10           rrc     r12             ;

0000f92c <__mspabi_srli_5>:
     f92c:      12 c3           clrc                    
     f92e:      0c 10           rrc     r12             ;

0000f930 <__mspabi_srli_4>:
     f930:      12 c3           clrc                    
     f932:      0c 10           rrc     r12             ;

0000f934 <__mspabi_srli_3>:
     f934:      12 c3           clrc                    
     f936:      0c 10           rrc     r12             ;

0000f938 <__mspabi_srli_2>:
     f938:      12 c3           clrc                    
     f93a:      0c 10           rrc     r12             ;

0000f93c <__mspabi_srli_1>:
     f93c:      12 c3           clrc                    
     f93e:      0c 10           rrc     r12             ;
     f940:      30 41           ret                     

0000f942 <.L11>:
     f942:      3d 53           add     #-1,    r13     ;r3 As==11
     f944:      12 c3           clrc                    
     f946:      0c 10           rrc     r12             ;

0000f948 <__mspabi_srli>:
     f948:      0d 93           cmp     #0,     r13     ;r3 As==00
     f94a:      fb 23           jnz     $-8             ;abs 0xf942
     f94c:      30 41           ret                     

0000f94e <__mspabi_srll_15>:
     f94e:      12 c3           clrc                    
     f950:      0d 10           rrc     r13             ;
     f952:      0c 10           rrc     r12             ;

0000f954 <__mspabi_srll_14>:
     f954:      12 c3           clrc                    
     f956:      0d 10           rrc     r13             ;
     f958:      0c 10           rrc     r12             ;

0000f95a <__mspabi_srll_13>:
     f95a:      12 c3           clrc                    
     f95c:      0d 10           rrc     r13             ;
     f95e:      0c 10           rrc     r12             ;

0000f960 <__mspabi_srll_12>:
     f960:      12 c3           clrc                    
     f962:      0d 10           rrc     r13             ;
     f964:      0c 10           rrc     r12             ;

0000f966 <__mspabi_srll_11>:
     f966:      12 c3           clrc                    
     f968:      0d 10           rrc     r13             ;
     f96a:      0c 10           rrc     r12             ;

0000f96c <__mspabi_srll_10>:
     f96c:      12 c3           clrc                    
     f96e:      0d 10           rrc     r13             ;
     f970:      0c 10           rrc     r12             ;

0000f972 <__mspabi_srll_9>:
     f972:      12 c3           clrc                    
     f974:      0d 10           rrc     r13             ;
     f976:      0c 10           rrc     r12             ;

0000f978 <__mspabi_srll_8>:
     f978:      12 c3           clrc                    
     f97a:      0d 10           rrc     r13             ;
     f97c:      0c 10           rrc     r12             ;

0000f97e <__mspabi_srll_7>:
     f97e:      12 c3           clrc                    
     f980:      0d 10           rrc     r13             ;
     f982:      0c 10           rrc     r12             ;

0000f984 <__mspabi_srll_6>:
     f984:      12 c3           clrc                    
     f986:      0d 10           rrc     r13             ;
     f988:      0c 10           rrc     r12             ;

0000f98a <__mspabi_srll_5>:
     f98a:      12 c3           clrc                    
     f98c:      0d 10           rrc     r13             ;
     f98e:      0c 10           rrc     r12             ;

0000f990 <__mspabi_srll_4>:
     f990:      12 c3           clrc                    
     f992:      0d 10           rrc     r13             ;
     f994:      0c 10           rrc     r12             ;

0000f996 <__mspabi_srll_3>:
     f996:      12 c3           clrc                    
     f998:      0d 10           rrc     r13             ;
     f99a:      0c 10           rrc     r12             ;

0000f99c <__mspabi_srll_2>:
     f99c:      12 c3           clrc                    
     f99e:      0d 10           rrc     r13             ;
     f9a0:      0c 10           rrc     r12             ;

0000f9a2 <__mspabi_srll_1>:
     f9a2:      12 c3           clrc                    
     f9a4:      0d 10           rrc     r13             ;
     f9a6:      0c 10           rrc     r12             ;
     f9a8:      30 41           ret                     

0000f9aa <.L12>:
     f9aa:      3e 53           add     #-1,    r14     ;r3 As==11
     f9ac:      12 c3           clrc                    
     f9ae:      0d 10           rrc     r13             ;
     f9b0:      0c 10           rrc     r12             ;

0000f9b2 <__mspabi_srll>:
     f9b2:      0e 93           cmp     #0,     r14     ;r3 As==00
     f9b4:      fa 23           jnz     $-10            ;abs 0xf9aa
     f9b6:      30 41           ret                     

0000f9b8 <memset>:
     f9b8:      0f 4c           mov     r12,    r15     ;
     f9ba:      0e 5c           add     r12,    r14     ;

0000f9bc <.L2>:
     f9bc:      0f 9e           cmp     r14,    r15     ;
     f9be:      01 20           jnz     $+4             ;abs 0xf9c2

0000f9c0 <.Loc.104.1>:
     f9c0:      30 41           ret                     

0000f9c2 <.L3>:
     f9c2:      cf 4d 00 00     mov.b   r13,    0(r15)  ;
     f9c6:      1f 53           inc     r15             ;

0000f9c8 <.LVL4>:
     f9c8:      30 40 bc f9     br      #0xf9bc         ;

========================================================================================
Listing for 'old' mspgcc.


main.elf:     file format elf32-msp430

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
   0 .text         000000fa  0000f800  0000f800  000000b4  2**1
                   CONTENTS, ALLOC, LOAD, READONLY, CODE
   1 .bss          0000000a  00000200  0000f8fa  000001ae  2**1
                   ALLOC
   2 .noinit       00000002  0000020a  0000f8fa  000001ae  2**1
                   ALLOC
   3 .vectors      00000020  0000ffe0  0000ffe0  000001ae  2**0
                   CONTENTS, ALLOC, LOAD, READONLY, CODE
   4 .comment      00000030  00000000  00000000  000001ce  2**0
                   CONTENTS, READONLY
   5 .debug_aranges 000000a4  00000000  00000000  00000200  2**2
                   CONTENTS, READONLY, DEBUGGING
   6 .debug_info   000005d2  00000000  00000000  000002a4  2**0
                   CONTENTS, READONLY, DEBUGGING
   7 .debug_abbrev 00000169  00000000  00000000  00000876  2**0
                   CONTENTS, READONLY, DEBUGGING
   8 .debug_line   00000340  00000000  00000000  000009df  2**0
                   CONTENTS, READONLY, DEBUGGING
   9 .debug_frame  00000030  00000000  00000000  00000d20  2**1
                   CONTENTS, READONLY, DEBUGGING
  10 .debug_str    000001a1  00000000  00000000  00000d50  2**0
                   CONTENTS, READONLY, DEBUGGING
  11 .debug_loc    00000014  00000000  00000000  00000ef1  2**0
                   CONTENTS, READONLY, DEBUGGING
  12 .debug_ranges 0000000c  00000000  00000000  00000f05  2**0
                   CONTENTS, READONLY, DEBUGGING

Disassembly of section .text:

0000f800 <__watchdog_support>:
     f800:      55 42 20 01     mov.b   &0x0120,r5
     f804:      35 d0 08 5a     bis     #23048, r5      ;#0x5a08
     f808:      82 45 0a 02     mov     r5,     &0x020a

0000f80c <__init_stack>:
     f80c:      31 40 00 03     mov     #768,   r1      ;#0x0300

0000f810 <__do_copy_data>:
     f810:      3f 40 00 00     mov     #0,     r15     ;#0x0000
     f814:      0f 93           tst     r15
     f816:      08 24           jz      $+18            ;abs 0xf828
     f818:      92 42 0a 02     mov     &0x020a,&0x0120
     f81c:      20 01
     f81e:      2f 83           decd    r15
     f820:      9f 4f fa f8     mov     -1798(r15),512(r15);0xf8fa(r15), 
0x0200(r15)
     f824:      00 02
     f826:      f8 23           jnz     $-14            ;abs 0xf818

0000f828 <__do_clear_bss>:
     f828:      3f 40 0a 00     mov     #10,    r15     ;#0x000a
     f82c:      0f 93           tst     r15
     f82e:      07 24           jz      $+16            ;abs 0xf83e
     f830:      92 42 0a 02     mov     &0x020a,&0x0120
     f834:      20 01
     f836:      1f 83           dec     r15
     f838:      cf 43 00 02     mov.b   #0,     512(r15);r3 As==00, 0x0200(r15)
     f83c:      f9 23           jnz     $-12            ;abs 0xf830

0000f83e <main>:
#include        "twi.c"
#include        "util.c"

void main(void)
{
     WDTCTL = WDTPW | WDTHOLD;                                  // Stop WDT
     f83e:      b2 40 80 5a     mov     #23168, &0x0120 ;#0x5a80
     f842:      20 01

     BCSCTL1 = CALBC1_1MHZ;                                     // Set range
     f844:      d2 42 ff 10     mov.b   &0x10ff,&0x0057
     f848:      57 00
     DCOCTL = CALDCO_1MHZ;                                      // SMCLK = DCO 
= 1MHz
     f84a:      d2 42 fe 10     mov.b   &0x10fe,&0x0056
     f84e:      56 00

     P1DIR |= TXD | LED;
     f850:      f2 d0 03 00     bis.b   #3,     &0x0022 ;#0x0003
     f854:      22 00

     _NOP();
     f856:      03 43           nop
     _EINT();                                                   // interrupts 
enabled
     f858:      32 d2           eint
 
******************************************************************************
  */

static  void put_char(uint8_t databyte)
{
     TXByte = databyte;
     f85a:      b2 40 2b 00     mov     #43,    &0x0202 ;#0x002b
     f85e:      02 02
     TXByte |= 0x100;                                           // Add stop bit 
(= 1)
     f860:      b2 d0 00 01     bis     #256,   &0x0202 ;#0x0100
     f864:      02 02
     TXByte <<= 1;                                              // Add start 
bit (= 0)
     f866:      1f 42 02 02     mov     &0x0202,r15
     f86a:      0f 5f           rla     r15
     f86c:      82 4f 02 02     mov     r15,    &0x0202
     BitCnt = 10;                                               // Load Bit 
counter, 8 bits + start + stop
     f870:      b2 40 0a 00     mov     #10,    &0x0200 ;#0x000a
     f874:      00 02

     P1OUT |= TXD;
     f876:      e2 d3 21 00     bis.b   #2,     &0x0021 ;r3 As==10
     TACTL = TASSEL_2 + MC_2;                                   // SMCLK, 
continuous mode
     f87a:      b2 40 20 02     mov     #544,   &0x0160 ;#0x0220
     f87e:      60 01
     TACCR0 = TAR;                                              // Initialize 
compare register
     f880:      92 42 70 01     mov     &0x0170,&0x0172
     f884:      72 01
     TACCR0 += Bit_time;                                                // Set 
time of first bit
     f886:      b2 50 68 00     add     #104,   &0x0172 ;#0x0068
     f88a:      72 01
     TACCTL0 =  CCIE;                                           // Enable 
interrupts
     f88c:      b2 40 10 00     mov     #16,    &0x0162 ;#0x0010
     f890:      62 01
     while (TACCTL0 & CCIE ) {};                                        // Wait 
for TX completion (by the 
interrupt)
     f892:      b2 b0 10 00     bit     #16,    &0x0162 ;#0x0010
     f896:      62 01
     f898:      fc 23           jnz     $-6             ;abs 0xf892
     f89a:      df 3f           jmp     $-64            ;abs 0xf85a

0000f89c <__stop_progExec__>:
     f89c:      32 d0 f0 00     bis     #240,   r2      ;#0x00f0
     f8a0:      fd 3f           jmp     $-4             ;abs 0xf89c

0000f8a2 <__ctors_end>:
     f8a2:      30 40 f8 f8     br      #0xf8f8

0000f8a6 <TIMER0_A0_ISR>:
  Handles Tx bit timing.
 
******************************************************************************
  */

interrupt (TIMER0_A0_VECTOR) TIMER0_A0_ISR(void)
{
     f8a6:      0f 12           push    r15
     P1OUT &= ~LED;                                             // Turn LED on 
(start of interrupt)
     f8a8:      d2 c3 21 00     bic.b   #1,     &0x0021 ;r3 As==01
     TACCR0 += Bit_time;                                                // Add 
Offset to TACCR0
     f8ac:      b2 50 68 00     add     #104,   &0x0172 ;#0x0068
     f8b0:      72 01
     if (BitCnt == 0)                                           // If all bits 
TXed
     f8b2:      1f 42 00 02     mov     &0x0200,r15
     f8b6:      0f 93           tst     r15
     f8b8:      07 20           jnz     $+16            ;abs 0xf8c8
     {
        TACTL = TASSEL_2;                                       // SMCLK 
selected, timer off (for power 
consumption)
     f8ba:      b2 40 00 02     mov     #512,   &0x0160 ;#0x0200
     f8be:      60 01
        TACCTL0 &= ~CCIE ;                                      // Disable 
interrupt
     f8c0:      b2 f0 ef ff     and     #-17,   &0x0162 ;#0xffef
     f8c4:      62 01
     f8c6:      14 3c           jmp     $+42            ;abs 0xf8f0
     }
     else
     {
        if (TXByte & 0x01)
     f8c8:      92 b3 02 02     bit     #1,     &0x0202 ;r3 As==01
     f8cc:      04 24           jz      $+10            ;abs 0xf8d6
            P1OUT |= TXD;
     f8ce:      5f 42 21 00     mov.b   &0x0021,r15
     f8d2:      6f d3           bis.b   #2,     r15     ;r3 As==10
     f8d4:      03 3c           jmp     $+8             ;abs 0xf8dc
        else
            P1OUT &= ~TXD;
     f8d6:      5f 42 21 00     mov.b   &0x0021,r15
     f8da:      6f c3           bic.b   #2,     r15     ;r3 As==10
     f8dc:      c2 4f 21 00     mov.b   r15,    &0x0021

        TXByte >>= 1;
     f8e0:      1f 42 02 02     mov     &0x0202,r15
     f8e4:      12 c3           clrc
     f8e6:      0f 10           rrc     r15
     f8e8:      82 4f 02 02     mov     r15,    &0x0202
        BitCnt--;
     f8ec:      b2 53 00 02     add     #-1,    &0x0200 ;r3 As==11
     }
     P1OUT |= LED;                                              // Turn LED on 
(end of interrupt)
     f8f0:      d2 d3 21 00     bis.b   #1,     &0x0021 ;r3 As==01
}
     f8f4:      3f 41           pop     r15
     f8f6:      00 13           reti

0000f8f8 <_unexpected_>:
     f8f8:      00 13           reti

Disassembly of section .vectors:

0000ffe0 <__ivtbl_16>:
     ffe0:      a2 f8 a2 f8 a2 f8 a2 f8 a2 f8 a2 f8 a2 f8 a2 f8 
................
     fff0:      a2 f8 a6 f8 a2 f8 a2 f8 a2 f8 a2 f8 a2 f8 00 f8 
................



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Reply via email to