
PROBLEM: (90148, 90298, 89008) (PATCH ID: OSF520-239)
********
This patch, shipped as Version 3.06.08 of the Tru64 UNIX
Assembler, resolves three assembler problems:
  1. The assembler produces an incorrect symbol table when
     it encounters the following:

     a) A label defined at the head of the .rdata
        section, and

     b) Multiple file references (use of the .file 
        and .loc directives) such that the initial
        .rdata label and the entry label of the last
        procedure in the .text section are associated
        with different files.

     The symbol table which results will cause any attempt to use
     om on the resulting object file to fail.

  2. The assembler improperly reorders an instruction which restores
     the stack pointer when assembling with optimization active.  The
     scheduler has specific logic which prevents an addq or an lda
     instruction which restores sp (and is followed by a ret instruction)
     from being moved.  The problem occurs in a case where a bis
     instruction is used in order to restore sp.

  3. The assembler is not adding a terminating NULL to the string
     specified as the argument for a .ident directive when the string is
     written to the object file.  This causes the "what" command
     to produce incorrect return values.


PROBLEM: (92727) (PATCH ID: OSF520-416)
********
PROBLEM: (92727)

  When presented with code such as the following:

    ldq   r25, 0(r25)
    ldq   r0,  0(r25)

  the assembler (if optimization is active) will
  generate the following code:

    ldq   r25, 0(r25)
    bis   r25, r25, r0  *** this is incorrect ***

The problem occurs when the assembler's register manager fails to 
identify that the target and base registers of the initial load are
the same. The assembler should not have attempted optimization. 
Instead, it should have generated the original instructions. 

With this patch, the assembler now looks for the specific
case of a matching target and base register.  It then marks 
the register table entry for that register as having 
"unknown" contents, which prevents the generation of 
the incorrect optimization.


PROBLEM: (96396) (PATCH ID: OSF520-1197)
********
  This patch fixes a "yacc stack overflow" error with the Tru64 assembler.
  The error symptom, when assembling an assembly language file, looks like
  this:

	% as -c foo.s
	foo.s(1162) : error : yacc stack overflow

  This problem is fixed with this patch.


PROBLEM: (95764) (PATCH ID: OSF520-1119)
********
PROBLEM: QAR 95764
  The assembler incorrectly treats octal constants as if they were
  decimal values.  This occurs silently and generally results in
  incorrect results at runtime.



