a³ Release 13.04
----------------


Targets
-------
* a³ for C28x is now available, offering WCET analysis, stack usage analysis,
  and value analysis for TMS320F2808.
* aiT, StackAnalyzer and ValueAnalyzer for TriCore now support 
  the 1197 and 1767 derivates.
* StackAnalyzer and ValueAnalyzer are now available for FR81S.


Qualification Support Kits (QSKs)
---------------------------------
* Baseline information about the qualified tool is now consistently listed 
  in TOR, VTP, and generated qualification run report.
* Qualifygui truncates report file before start of each qualification run.
* A definition of test case dependencies has been added to the VTP.


GUI
---
* Results Viewer now shows the number of times a function is called 
  on the WCET path in the contributions table.
* Better message output for analysis with additional starts. 
  Analysis steps for one additional start are grouped together 
  with additional start name in header in message view.
* It is now possible to create multiple analyses at once, 
  from the Symbols or Functions views.
* The GUI highlights the exact location of an AIS parse error if possible.
* Now supporting XML report file for "Control Flow Visualizer".
* XTC: added support for additional aiT option "xml_style_sheet".


AIS
---
* It is now possible to modify register contents in speculative contexts 
  by means of an AIS2 annotation:

     instruction <pp> enter|exit with speculatively: ... ;

* Access annotations for specific base registers are no longer supported. 
  Examples:

     global accesses restrict for base r10 to 0x1000..0x1fff;
     instruction 0x1000 accesses 0x1000..0x1fff for base r10;


Decoding
--------
* Code duplication support for ARC, C33, H8, MPC5xx, MPC55xx, MPC56xx, 
  PPC, TriCore, and x86.
* Improved support for delay slots.
* Delay slots will be code-duplicated for true and false edges 
 (if not annulled) to allow for higher analysis precision.
* Improved decoding algorithm to reconstruct control flow graph.
* Improved decoding statistics:
* * Loops no longer count as routines.
* * Code-duplicated instructions are counted separately. 
* Improved decoding if mixed branch/call to same routine occur.
* Improved "target is not analyzed" annotation.
* Improved diagnostic messages for conflicting AIS annotations: 
  now linking to both AIS annotations in question.
* Improve loop type detection for architectures with delay slots 
  or guarded execution.
* Added message numbers to output of unresolved computed calls and branches.
* Better handling of unresolved computed branches inside loops 
  by loop transformation. They will now be included into the loop 
  for better visualization.
* ARM:
  * Added support for the ARM/Thumb VFPv3-D16 instruction set extension.
  * Improved automatic resolving of switch tables (Thumb and GCC).
* C166: model traps as routine calls.
* C33: corrected memory sizes in AIS annotations.
* M68020:
  * Fixed wrong decoding of the "DIVS.L <ea>, Dr:Dq" instruction.
    The wrong bits were extracted for the divisor operand, such that 
    the extension word that is part of the divisor operand was erroneously
    decoded as an instruction of its own.
  * Fixed missing distinction between "DIVS.L <ea>, Dq" 
    and "DIVSL.L <ea>, Dr:Dq". 
* PPC: Support for HighTec GCC.
* Improved automatic resolving of switch tables (DiabData) 
  and computed calls in general.
* Improve simplified mnemonics for VLE instructions.
* Support for extended PPC ISA sc/sync instructions, such as "sc 1", 
  "sync 1", and "sync 2".
* SPARC:
  * Minor changes in assembly string for better readability.
  * "trap_negative" is not interpreted as a function call anymore. 
* TriCore: improved support for HighTec GCC.
* V850: support for HighTec GCC.
* x86: better support for GCC.
* The supported instruction set is that of the P5 architecture until 
  the P54C implementation of Pentium, plus a few more modern instructions.


Stack and value analysis
------------------------
* Improved StackAnalyzer precision by defaulting to "max-length = 2".
* StackAnalyzer will compute the maximum usages for the individual stacks 
 (e.g. user stack, system stack,...) separately.
* XML report for StackAnalyzer now contains additional information 
  such as the stack layout of the architecture.
* Busy-waiting loops without volatile annotation found are no longer warnings.
* Speculative accesses for infeasible blocks now show up 
  in the context-insensitive access information of the text and xml reports.
* Improved precision of feasibility check for the targets of conditional 
  and computed control flow transitions, e.g. switch tables.
* Improved loop-bound diagnostic messages, now linking to the AIS annotations 
  that have an effect on the loop in question.
* Improved precision of warnings issued by consistency checks for contents 
  of memory cells annotated as constant.
* Improved error messages for stack modifying loops.
* Improved loop range computation.
* Improved error messages for contradictions of analyzed value 
  with specified value, now including AIS annotation location.
* Improved comments about accessed symbols/variables in text report file.
* ARM:
  * Improved stack analysis for GNU C/C++ compiler.
  * Support ARM/Thumb VFPv3-D16 instruction set extension.
* C28x:
  * A [?] is printed to the report file instead of [X..Y] if Y-X >= 4*64k 
   (i.e. the interval spans over 19 bits of address space).
  * The analyses themselves use the interval [X..Y].
* PPC: improved stack analysis if frame pointer is used by the compiler.
* TriCore: improved loop analysis.
* V850
  * Improved loop analysis.
  * Improved StackAnalyzer precision for GHS compiler.
  * Improved branch splitting if addi is used as a compare instruction.
* x86
  * The supported instruction set is that of the P5 architecture until 
    the P54C implementation of Pentium, plus a few more modern instructions.
  * Improve stack analysis precision for GCC compiled binaries 
   (support frame pointer save + restore).


Cache and pipeline analysis
---------------------------
* Improved prevision of cache analysis in general.
* Improved detection of possible state explosions.
* aiT for MPC55xx, LEON2, MPC56xx, and MPC603e can now take cache-related
  preemption costs into account. This is done by the so-called UCB analysis.
* C33: corrected pipeline behaviour for delay slots in slow memory.
* MPC603e: added support for e300 instruction fetch burst extension.
* MPC755s/PPC750/MPC603e/MPC7448s:
  * Improved memory consumption of generic MCU model.
  * Add support for different burst length values for SDR IC accesses.
  * Implemented non-ECC. Implemented configurable ECC width 
   (8, 16, 32, 64 bits).
* MPC7448(s): removed unsupported DRTRY Mode Option from GUI.
* TriCore TC1796: improved handling of stores to cached EBU memory.
* Tricore TC1797: improved analysis behavior in terms of memory consumption
  and computation time.


Visualization and reporting
---------------------------
* Execution count of routines on the WCET path is now exported 
  to the XML report file as "count" attribute (global and per context).
* UCB analysis results are now exported to the XML report file.


==============================================================================
Last modified on 25 April 2013 by alex@absint.com.
Copyright 2013 AbsInt. http://www.absint.com/
==============================================================================
An HTML version of these release notes is available at
http://www.absint.com/releasenotes/a3/13.04/