Manhattan layout by default |
Statistics only on request |
Improved ResultCombinator |
a³ for C28x now supports TMS320F2801x, …02, …06, …08, …09, …10, …11, and …12.
global "<attribute name>" = "<attribute value>"
routine <pp> area <pp> (, <pp>)*
” annotations.
The decoder wrongly attempted to resolve the first area program point as a routine,
which usually fails.instruction <pp> area contains …
” annotations,
such that instruction
is no longer wrongly replaced with routine
.global accesses default
” annotation.
It no longer affects the value analysis, only the pipeline analysis phase.
The threshold for affecting unsharp accesses can be set in the GUI.area … contains …
”
was too wide. This has been fixed, the data now being properly truncated.routine 'routinename' is watched
”
AIS annotation and feature.0x0
pointers can be safely discarded:
instruction <pp> null safe(: <boolean_expr>);
before
expressions are no longer supported.routine <pp> calls <pp> (, <pp>)*?
”
no longer affects traps._name
”
(both “name
” and “_name
” will work).doubleword
” can now be used as a unit in
“area contains
” annotations.mfocrf
and mtocrf
,cmpb RA, RS, RB
instruction,dnh
, e_dnh
, and se_dnh
,mfdcr
and mtdcr
instructions.mov eX, dX
” move variant.Instructions: - 155 total loads : 153 exact ( 98.7%), 2 nearly exact ( 1.2%), 0 imprecise ( 0.0%), 0 unknown ( 0.0%) - 80 total speculative loads : 78 exact ( 97.5%), 0 nearly exact ( 0.0%), 0 imprecise ( 0.0%), 2 unknown ( 2.5%) - 147 total stores : 147 exact (100.0%), 0 nearly exact ( 0.0%), 0 imprecise ( 0.0%), 0 unknown ( 0.0%) - 72 total speculative stores : 72 exact (100.0%), 0 nearly exact ( 0.0%), 0 imprecise ( 0.0%), 0 unknown ( 0.0%) Accesses (instructions * access steps * contexts): - 169 total reads : 167 exact ( 98.8%), 2 nearly exact ( 1.1%), 0 imprecise ( 0.0%), 0 unknown ( 0.0%) - 102 total speculative reads : 100 exact ( 98.0%), 0 nearly exact ( 0.0%), 0 imprecise ( 0.0%), 2 unknown ( 1.9%) - 153 total writes : 153 exact (100.0%), 0 nearly exact ( 0.0%), 0 imprecise ( 0.0%), 0 unknown ( 0.0%) - 82 total speculative writes : 82 exact (100.0%), 0 nearly exact ( 0.0%), 0 imprecise ( 0.0%), 0 unknown ( 0.0%) (areas up to 1024 bytes are considered 'nearly exact').
memory accesses of function 'Proc0': instruction 0x80000086 writes to [0xd00007c0]:64 instruction 0x8000008e writes to [0xc000000c]:4 ('PtrGlbNext') instruction 0x80000092 writes to [0xd00007c0]:64 instruction 0x80000096 writes to [0xc0000008]:4 ('PtrGlb') instruction 0x8000009a reads from [0xc000000c]:4 ('PtrGlbNext') instruction 0x8000009e writes to [0xc000004c]:4 (part of 'feld')
va-fr81: Warning #3082: In "test.c", line 42:
In routine 'testLoop.L3', at address 0x1234560:
Losing precision since there is an unresolved computed call (routine "testLoop" + 3 computed).
Assuming a balanced stack effect and no violation of calling conventions for unresolved call. Results may be incorrect!
You might need an AIS annotation:
instruction routine "testLoop" + 3 computed ...
va-fr81: Warning #3073: In "minmax.c", line 26:
In routine 'main', at address 0x1013ee:
The memory access annotation specifies an area for the read access which is outside the computed memory area => assuming infeasible path:
computed: [0x00100fec]:4
specified: [0x00100ff0]:4
mtocrf
/mfocrf
instructions.global "pipe_code_access_weight" = 2; global "pipe_read_access_weight" = 2; global "pipe_write_access_weight" = 2;The default weight is 1.
exec2crl.disass: Info: In "<source>", line <number>:
In routine '<name>', at address <address>:
Call has 1 computed target (matched pattern: call_table_indirect_1 using r28 = 0x82 (table index) and r2 = 0x6d1f0 (table address)):
<address>/n <name>.
<program point> additionally takes switch (r5) {...} cycles;