The cgi assembler at
  http://mspgcc.sourceforge.net/assemble.html
generates
        push #4   (2 cycles)
OPC     0x1222

while push #8
        push #8   (4 cycles)
OPC     0x1230
DW      0x0008

but the errata descriptions at
    http://www.ti.com/sc/cgi-bin/buglist.cgi
for many MSP430's list the CPU4 bug, and indicate
that the assembler will generate a 2 word instruction
for both the push #4 and push #8. (The msp430 binutils
assembler as does generate push #4 as 2 words,
like the sourceforge cgi tool does for push #8)

It is interesting to note the the CPU4 bug report
states a different number of cycles for both
types of instructions


CPU4 - Cpu: Fixed by assembler SW - push #4, push #8
            cannot use constant register

                       Description
         CPU4 - Bug description:
         Module: CPU, Function PUSH #4, PUSH #8 The
         single operand instruction PUSH cannot use the
         internal constants (CG) 4 and 8.
         The other internal constants (0, 1, 2, -1) can be
         used.
         The Assembler version 1.08 and higher produces
         correct code.
         The number of clock cyles is different: PUSH
         #CG uses address mode 00, requiring 3 cycles, 1
         word instruction PUSH #4/#8 uses address mode
         11, requiring 5 cycles, 2 word instruction
         Workaround implemented in assembler. No fix
     planned.

Reply via email to