
Release Notes -- Motorola DSP56000 Macro Cross Assembler Version 1.10

1)  There is a bug in versions 1.00 and 1.10 of the assembler that causes a
    divide-by-zero error when an integer is used as the divisor in a
    floating point divide operation (e.g. 3.456/2).  The workaround is to
    write the divisor in floating point format (3.456/2.0).

2)  The assembler reference manual contains an error in the description of
    the logical negate operator on page 3-5.  The last sentence of the
    paragraph reads "If BUF had a value of 1000, !BUF would have a value of
    1."  Logically negating BUF (!BUF) would actually yield a zero value
    here.

3)  Another error in the manual appears on page 5-4, in the N_R_MUL macro
    coding example at the top of the page.  The operands of the DO
    instruction are transposed;  the instruction should read "DO #N,_END."

4)  In the SWAP_REG and SWAP_SYM macros shown on pages 5-6 and 5-7,
    respectively, the last move instruction in the macros reads "MOVE
    X0,R\REG1."  This instruction should be "MOVE X0,R\REG2."

5)  In Appendix C, "Instruction Set Summary," section C.6, "Program Control
    Instructions," the RTI and RTS instructions DO NOT ALLOW parallel data
    moves.  Therefore none of the program control instructions allow
    parallel data moves.

6)  If an address register is written in an instruction and subsequently
    used as a pointer in the following instruction, the assembler correctly
    generates an error flag.  This is because due to pipelining the new 
    contents of the register are not available until the next following 
    instruction.  However, there is a bug in the assembler such that if a 
    transfer conditional (Tcc) instruction writes to an address register and 
    the following instruction uses that register as a pointer, the assembler
    does not generate the expected error flag.  Here is an example:

                TGE    X0,A    R0,R1    ; Write to register R1
                MOVE   X:(R1),X1        ; R1 used as pointer here;
                                        ; Assembler should generate error,
                                        ; but does not

