New targets
- New a³ for MPC603e with universal DDR controller support.
- New a³ for PPC750 with universal DDR controller support.
- New a³ for x86 with StackAnalyzer for x86
and x86rm.
Qualification Support Kits (QSKs)
- QSKs are now available from the a³ GUI via “Help”
→ “Qualify…” (see screenshot).
- Extended the AIS expression semantics tests by the usage of:
- the
sint
/uint
cast operators;
- the
exactly==
operator;
- the
(-inf..inf)
construct.
- Added tests for:
- parametric loop bounds;
- user register values;
- path exclusion based on user register values;
- loop bound with time limit;
- verifying that irreducible loops cannot be handled by loop annotations
but by flow constraints.
- The QSK for StackAnalyzer for PowerPC with gcc-4.1.2 now includes
hardware stack measurement tests.
a³ toolchain
32-bit and 64-bit Linux only: Programs now report a backtrace if they abort.
Please include this backtrace when contacting support.
Stack and value analysis
- Improved precision if memory accesses are unsharp, by reading all possible values
and combining them up to a certain threshold.
- The option “Do not analyze values of memory cells” is now honored by StackAnalyzer.
- Improved warning messages about possible targets of unresolved computed calls.
- Improved precision of the bitwise-and operator.
- Performance improvements for the analysis of unrolled loops with many contexts.
- HCS12: value analysis no longer determines memory accesses for computed jumps.
- M68020: improvements to the
btst
instruction.
- PowerPC:
- improved precision for multiplication with immediate constants;
- improved automatic loop detection for TargetLink-generated code;
- restricted annotations are now used during analysis time to improve the precision
of write operations to memory;
- interactive value analysis now also shows the contents of the processor status flags
updated by comparison operations (the flags are usually Negative, Carry, Zero, and Overflow).
- V850:
- improved precision of loop analysis;
- improved annotation handling for mirrored memory areas.
Path analysis
- Warnings about unbounded loops or recursions are now only information messages,
as they may be bound by flow constraints.
- Prediction file base path analysis: massive speedup of poptimize2p for the case
of extensive splitting/joining in basic blocks.
Cache and pipeline analysis
- Unresolved computed calls and branches are now handled as potential program exits
for pipeline analysis, in addition to triggering warnings.
- Improved persistence analysis.
- Better handling of conflicts between memory annotations provided through the GUI
and by the user.
- M68020: improvements to the timing model of the M68020 processor (
btst
).
- TriCore:
- improved performance and memory consumption of the pipeline analysis;
- now allowing higher waitstates for flash.
- V850: improved handling of invalid memory area annotations.
- MPC7448: improved selection of memory areas for accesses.
- MPC755: support for handling of
nop
tail instructions.
- PPC750:
- support for handling of
nop
tail instructions;
- state space optimizations caused by bus clock ratio splitting;
- a 1:1 clock ratio between the processor core and the L2 cache unit is now assumed.
Visualization and reporting
Default configuration values are no longer shown in the textual report files.