asm56300.txt

(10 KB) Pobierz
/* $Id$ */
Motorola 56300 Assembler, Version 6.3.4,  Jan 05 2000 
Another instruction table bounds problem. Due to 
not handling conditional assembly in Pass 0. Fixed.
Fixed listing file issue with year 2000. Listing
now correctly prints out only last two digits of current
year. Not a problem in the object file, only in text
report.
====
Motorola 56300 Assembler, Version 6.3.2,  Sep 17 1999
Fixed instruction table bounds overflow problem.
Problem introduced because SCS statement weren't handled
in Pass 0.
====
Motorola Assembler, Version 6.3.0,  Jul 13 1999
Updated revision number.
====
Motorola Assembler, Version 6.2.38, Mar 23 1999
-Fix for byte order of DEBUG sections. Internal
use only.
====
Motorola Assembler, Version 6.2.37, Jan 29 1999
-Order of bytes generated by DCL,DCW,DC are reversed *only
for sections qualified by the DEBUG option*. This should
not affect any customers since the DEBUG option is for
internal use only.
-Fixed bug where STYP_DEBUG section flag was not set in Pass 2.
====
Motorola 56800 Assembler, Version 6.2.36, Jan 04 1999
Fixed overlay/byte-mode load counter increment bug (DSPhl01662)
====
Motorola Assembler,  Version 6.2.35, Dec 14 1998
ALL  : Removed "fix" for asmsc4 align problem in data.c
56300: Checks LINTBIN env variable for location of Lint563
       after DSPLOC is checked.
====
Motorola Assembler,  Version 6.2.34, Dec 08 1998
Fixed macro path problem. Macro library path list was 
cleared after Pass 0. Macros weren't being read in Pass 1,
resulting in a section sequence fatal error. Also, fixed
array bounds violation reported by purify. 
====
Motorola Assembler,  Version 6.2.33, Dec 08 1998
NONDE flag is not gated by RP flag anymore. NONDE should
work independently of -w or -oRP.
====
Motorola Assembler,  Version 6.2.32, Dec 04 1998
Fixed problem where include and macro path globals
where inadvertantly getting cleared after Pass 0.
This would cause include/macro file opens to fail
after Pass 0.
====
Motorola 56300 Assembler,  Version 6.2.31, Dec 02 1998
NOPs required for instructions at loop address are now
placed outside the do loop.
SR stall NOP insertion optimization removed per MSIL instructions.
There were no problems with overlays as reported in 6.2.30,
hence no changes regarding this.
There are still some listing file anomalies which don't affect
the object code.
====
Motorola 56300 Assembler,  Version 6.2.30, Nov 30 1998
Assembler now uses PC and section number to determine
 where to insert NOPs, instead of line number.
Fixes Lint NOP insertion for macro expansion.
Added flag to indicate 16-bit arithmetic/compatibility mode
 RTI fix added only if this flag is set ( -y flag ).
Lint warnings printed to listing file. Use -oNOLOW to 
 turn this off.
Lint563 which is run with asm includes any macro or include file
 paths, as well as absolute assembly flags.

 Known bugs:
 NOP fixes on overlays don't work.
 Nop mnemonic isn't printed
 Some problems printing the (*) annotation with do loops.


====
Motorola 56300 Assembler,  Version 6.2.29, Nov 26 1998
- Assembler generates "movec  ssl,sr:nop" instruction sequence
	before an RTI instruction if so directed by the lint warning file.
====
Motorola 56300 Assembler,  Version 6.2.28, Nov 25 1998
-Added capability to run lint563 from the assembler via a -w
and optional -r command line flag. 
-Rewrote how the assembler handles multiple .asm files
when the -c flag is specified.

The assembler automatically runs lint563 if the -w flag is specified, like so:

-w      -- generates a default lint563 output file which is <asmfile>.lnt
-w<file>-- use <file> for the lint563 output file. If multiple input files
           are specified. The same <file> name is used for lint563 output.

If -w or -w<file> is specified and the RP option (Register Padding, i.e.
automatic NOP insertion by the assembler) is specified, RP is turned OFF.
This means only NOPs specified by Lint563 will be added.

The assembler will look to see if the environment variable DSPLOC is set 
in order to find lint563. In this case, lint563 should be installed in 
$DSPLOC/dsp/bin. If DSPLOC is not set, the assembler looks in the 
current working directory where asm56300 was invoked. If this version of
the assembler is used with g563c, DSPLOC must be set.

The assembler now accepts -r<rev> flags. This is passed thru unchanged 
to lint563 if specified. If -r<rev> is not specified, the default lint563 
revision is used.

A new option flag, -oNOLOW, may be specified to suppress  warnings
that NOPs have been inserted due to lint563 data.

The C-compiler may use '-asm "-w -r<rev> -oNOLOW"' to automatically 
insert NOPs identified by lint563 in compiler generated source. 
A unique .lnt (lint warning file) is generated for each input source 
file.
====
Motorola 56300 Assembler,  Version 6.2.24, Nov 02 1998
Additional SR stall detected - move [A|B],.. followed by SR access.
====
Motorola 56300 Assembler,  Version 6.2.23, Oct 30 1998
Added additional interlock checks and NOP insertion for these conditions:
- DALU instruction or accumulator read followed by SR access --
  SR access includes:
  move sr,...
  bset #n,sr bclr #n,sr bchg #n,sr btst #n,sr
  bsset #n,sr bsclr #n,sr brset #n,sr brclr #n,sr
  jsset #n,sr jsclr #n,sr jset #n,sr jclr #n,sr
  b<cc> where <cc> is cc,cs,ec,eq,es,ge,gt,lc,le,ls,lt,mi,ne,nr,pl,nn
  bs<cc>
  if<cc> if<cc>.u
  debugcc
  j<cc> js<cc>
  trapcc
  Accumulator reads include:
  move D,... or parallel move where D is [A|B] or any portion thereof
  btst #n,D  bclr #n,D  bchg #n,D
  bsset #n,D bsclr #n,D brset #n,D brclr #n,D
  jsset #n,D jsclr #n,D jset #n,D jclr #n,D

- Arithmetic stalls --
  DALU instruction with any portion of reg A,B as destination followed
  any an access of any portion of A or B from the following:
  move D, .. or parallel move where D is any portion of A or B
  btst,bclr,bchg #n,D
  bsset,bsclr,brset,brclr $n,D
  jsset,jsclr,jset,jclr #n,D 

- Conditional branch followed by two consecutive loop addresses.

- One word conditional branch at loop address - 1.

- Global data bus forwarding: move <data_mem>,<gdb_reg> followed by
  move <gdb_reg>, <any_mem> where <gdb_reg> is r0..r7,n0..n7,m0..m7.
  <gdb_reg> destination and source must be identical.

- move <any>, [x0|x1|y0|y1] followed by movep [x0|x1|y0|y1],y:io_ea or x:io_ea   
Changed default conditon of NDE. This is now initialized to off. Therefore,
the initial conditions of the assembler are NONDE and NORP, which means
that by default NOP are never automatically inserted into the user's code
unless they specifically turn on NDE or RP. NDE controls NOPs for DALU
interlocks (arithmetic, status, and transfer stalls and other instruction
restrictions including do loop restrictions).
RP controls NOP insertion for AGU interlocks (address register stalls).

By default, interlock warnings (IDW flag) are enabled. However, it is 
recommended that NDE and RP be enabled along with IDW show all interlock
warnings.
====
Motorola 56300 Assembler,  Version 6.2.22, Oct 07 1998
Changed behavior of RP and NDE flags. Both RP and NDE
must be specified in order to insert nops for detected
interlocks.
====
Motorola 56300 Assembler,  Version 6.2.21, Sep 18 1998
Opt RP and NONDE now work correctly when specified together.
NONDE suppresses DALU interlock warnings. DALU stalls
are still detected and Nops are still generated because
RP is specified.
====
Motorola 56300 Assembler,  Version 6.2.15, Aug 12 1998
Added modification to gen_nop to update label values 
which are affected by nop insertion. This is a quick fix and
does not affect label which reside on different lines than the
affected instruction.
====
Motorola Assembler,  Version 6.2.14, Aug 6 1998
Added ReprocessingDoLoopLines flags in gen_nop to 
prevent recursive call to process() when inserting nops
in a do loop.
====
Motorola 56300 Assembler,  Version 6.2.13, Jul 28 1998
Added an additional gen_nop condition in amode.c:do_regref func.
====
Motorola 56300 Assembler,  Version 6.2.12, Jul 27 1998
Array bounds problem in Dstk->doline array caused
by gen_nop was breaking the assembler. Local counter variable
seemed to fix the problem.
====
Motorola Assembler,  Version 6.2.9, Jun 11 1998
QTKqa14355 Bug Report Fix. BUFFER statement was incrementing
the load time counter only enough to align the load
pc on the modulo boundary defined by the buffer statement.
The load counter should increment the same amount as the
run time counter.
====
Motorola 56300 Assembler,  Version 6.2.7, Jun 05 1998

An error is no longer generated when a p memory
move is executed as the last instruction in a 
do loop. P memory moves are apparently legal at LA. 

Normally, a c compiler generated file will set the
RP flag. As of 6.2.6, RP inserted NOPs anywhere a
stall cycle or register move restriction occurs.
This is still true. If NORP flag is set
via -oNORP with a c compiler generated file, the
redundant NOPs are suppressed, the required NOPs
for RTI,RTS, et al, restrictions are still inserted.
In this way the efficiency of c compiler generated
code is maintained.
====
Motorola 56300 Assembler,  Version 6.2.6, May 19 1998
If -oRP option selected, nops are inserted automatically.
Stall cycle warnings are suppressed, even if -oIDW specified.
If -oRP and -oIDW specified, -oRP overrides -oIDW, that is,
nops are inserted and warnings are suppressed.
====
Motorola Assembler,  Version 6.2.5, May 11 1998
1. Bug while emitted a string with dcb and opt aec
	 enabled was fixed.
2. Added capability to enable opt cc within a do loop
	 was added.
====
Motorola  Assembler,  Version 6.2.3, Apr 21 1998
1. Fixes for QTKqa13764
Customer reported that NT version of assembler SEGV's
when INCLUDE statement is used in ...
Zgłoś jeśli naruszono regulamin