Support for 64-bit Windows (Vista and Windows 7).
-l
to force showing of launcher.
For example, a3 mpc755 -l
shows launcher with all available
MPC755 builds.license.dat
. If the user clicks on
“Change License
…”, a³ tries to import
the selected license file to the installation directory. If there is no
writing permission, the license will be stored in a data directory
suggested by the operating system.instruction
… is entered with
…”
can now be a symbolic loop expression. For example, it is now possible to specify:
instruction "prime" + 1 loop is entered with @ctr = @ctr + 1;
restrict
for the intersection of result intervals
try
for supplying default values for expressions
that fail to produce a bounded interval.value
” that stands for the result
of the automatic loop bound analysis. By using this variable,
the analysis result may be modified, e.g. restricted by “restrict
”
or replaced by a default value if it is unbounded.E
be a general expression):
loop <PP> max restrict (value, E)This restricts the automatically determined loop bound
value
by the value of expression E
. The resulting loop bound is the
intersection of the two intervals. For example, if the provided expression
E
evaluates to (1..6)
and the automatically determined
value
is (3..9)
, the resulting loop bound will be (3..6)
.loop <PP> max try (value, E)This supplies
E
as the default value to be taken if the automatic
analysis returns the value
“unbounded” or “undefined”.
However, in all other cases the value
returned by the analysis is taken,
even if it is less precise than E
.loop <PP> max try (restrict (value, E), 1000)This specifies that either the result of the automatic loop analysis or the user-provided expression
E
will be used, depending
on which is more precise. The number 1000
in this example
serves as a fall-back solution if both the automatic analysis and the
evaluation of E
fail to produce a bounded interval.mem (0x123)
” or “mem (sp + 8)
”.
The access width is the standard access width of the target architecture.
Non-standard widths can be specified as “mem byte (0x123)
”
or “mem (0x123, 1)
”.loop <PP> max try (mem(sp+1, 1), 10)If the value analysis can determine the top-most byte on the stack (because of the “
, 1
” in mem
),
then the value of the byte is taken as the loop bound. Otherwise,
the loop bound is 10
.snippet <PP> is not executed if try ((mem byte (0x123)) ≤ 2, 0)The referenced code snippet is excluded from analysis if the byte content of memory cell
0x123
is less than 2
.
If the content of the memory cell is not known by the analysis,
the expression evaluates to the default value 0
(which corresponds to false).tail call
”:
instruction <PP> is a tail call;This is equivalent to:
instruction <PP> is a call and immediately returns;
SNIPPET P1..P2 IS EVALUATED AS "Name";where
Name
is a label to identify the code snippet in the report file.
It will then appear in the report file under the heading
* WCET contributions of region 'Name' (routine 'R'):Note: this additional output can only be produced if “Path analysis variant: ILP based” is selected under “Configuration” → “Analyses”.
reg(3) or reg(13)
” is stored in
register 3 during some part of its lifetime and in register 13 the
rest of the time.reg(3):4, ?:4, fp-12:4
” indicates a twelve-byte value
whose first four bytes reside in register three, the middle four bytes are
unavailable (e.g. due to optimization), and the last four bytes are in memory,
twelve bytes before the frame base.ldi || ldi
”.rti
for stack analysis.blr
and
bctr
instructions) is now compared with the instructions that follow in
the control flow graph. The result is used to compute infeasible paths and issue
warning messages for inconsistent control flows, e.g. resulting from wrong user annotations.pop_d_RegS
and pop_w_RegS
.ld*
,
st*
, sld*
, sst*
and the
“bit3 dis16[reg]
” forms of not1
,
set1
, clr1
, and tst1
.always returns
”
annotation, for example:
snippet "R" is external and takes max 0 cycles and always returns;
predpathan
.predan
/predpathan
.predpathan
now supports tasks that are not completely unrolled.