forked from intel/device-modeling-language
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASENOTES-1.2.docu
176 lines (174 loc) · 9.92 KB
/
RELEASENOTES-1.2.docu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<!--
© 2021 Intel Corporation
SPDX-License-Identifier: MPL-2.0
-->
<rn id="dml-1.2">
<name>Device Modeling Language (DML) 1.2</name>
<build-id value="6012"><add-note> Fixed a bug that caused a crash on the
expression <tt>1 << 64</tt>
<bug number="HSD-1306575446"/>.</add-note></build-id>
<build-id value="6018"><add-note> The <tt>read</tt> and <tt>write</tt>
templates have been moved from
utility.dml to always be included into 1.2 DML files. Additionally
they are now inherited by all registers and fields by default.
If you now see a name clash on <tt>read</tt> or <tt>write</tt>
templates, you will need to rename your user-code
defined templates. </add-note></build-id>
<build-id value="6019"><add-note> The <tt>get</tt> and <tt>set</tt> methods
are now shared in attributes
inheriting from the DML 1.4 utility templates
(<tt>bool_attr</tt> etc.). </add-note></build-id>
<build-id value="6024"><add-note> The <tt>import</tt> statement has been
changed: If the path
starts with <tt>./</tt>, the path is now interpreted relative to
the directory of the importing file
<bug number="HSD-2209506845"/>. </add-note></build-id>
<build-id value="6024"><add-note> Fixed a bug that caused a bad warning and
incorrect code when
the operand to <tt>sizeof</tt> is an identifier that can be
resolved both to a value and to a type. </add-note></build-id>
<build-id value="6026"><add-note> The project build environment is now
sensitive to an environment
variable <tt>DMLC_PORTING_TAG_FILE</tt>, which should be a
filename. When defined, DMLC will create the file if it doesn't
already exists, and then append data to the end of the file,
containing machine-readable instructions on how to port the
device to DML 1.4. The typical use case is to set this variable
when building one or more modules, and feed the resulting file
as input to the <tt>port-dml.py</tt> script.
The -P command-line argument has also been changed: it now takes
a filename argument, and can be used without -T. </add-note></build-id>
<build-id value="6031"><add-note> Changed the order in which registers are
being reset upon
hard_reset or soft_reset, and the ordering of the
parameters <tt>mapped_registers</tt>
and <tt>unmapped_registers</tt>. The order is still considered
undefined, but in practice it now changes less randomly, and is
equal on Simics 5 and Simics 6. </add-note></build-id>
<build-id value="6031"><add-note> Fixed a bug in nested <tt>foreach</tt>
loops when traversing
register arrays inside bank arrays
<bug number="HSD-1809370911"/>. </add-note></build-id>
<build-id value="6036"><add-note> It is now permitted to use the
<tt>nothrow</tt> annotation on a
method override even if the overridden method does not. This is
sometimes useful while porting a large code base to DML 1.4,
because it allows <fun>get</fun> and <fun>set</fun> methods in
common code to be declared as non-throwing, which is required
by the DML 1.4 standard library. </add-note></build-id>
<build-id value="6036"><add-note> Fixed a language inconsistency: When DML
1.4 code contains an
<tt>if</tt> statement inside a method body, and this code is
imported from a DML 1.2 file, then the statement used to be
interpreted as a DML 1.2 <tt>if</tt> statement; it is now
interpreted as a DML 1.4 <tt>if</tt> statement as expected.
The difference is that if the <tt>if</tt> condition is constant,
then DML 1.2 would discard the dead branch without checking for
errors, while 1.4 evaluates both the live and dead branch.
This change can give new compile errors in existing code; in
this case, you can normally resolve the problem by
changing <tt>if</tt> to <tt>#if</tt>. </add-note></build-id>
<build-id value="6041"><add-note> Field arrays are now fully supported and
documented,
and don't give compile warnings. </add-note></build-id>
<build-id value="6041"><add-note> Fixed a DMLC crash when generating porting
tags. </add-note></build-id>
<build-id value="6041"><add-note> Add porting rule for uses of 1-bit fields
as booleans;
converts <tt>if (f)</tt> into <tt>if (f != 0)</tt>. </add-note></build-id>
<build-id value="6048"><add-note> Fixed a problem with the template
<tt>custom_time_event</tt>
from <tt>dml12-compatibility.dml</tt>. </add-note></build-id>
<build-id value="6049"><add-note> Applying bitwise not (<tt>~</tt>) on a
boolean value
now gives a compile error. Previously it resulted in an
unconditionally true value, which is not what
you want. </add-note></build-id>
<build-id value="6050"><add-note> Fixed an issue with using endian integers
as arguments in pointer
arithmetic. </add-note></build-id>
<build-id value="6050"><add-note> Fixed an issue preventing assignment from
const layout-typed pointers. </add-note></build-id>
<build-id value="6053"><add-note> Taking the address of a bitfield type in a
layout will now correctly give
you a pointer of the bitfield type. </add-note></build-id>
<build-id value="6054"><add-note>Fixed a crash on methods marked
<tt>nothrow</tt> and
multiple return arguments, returning a typed template or struct type
<bug number="HSD-18012036595"/>. </add-note></build-id>
<build-id value="6054"><add-note>The file <tt>dml12-compatibility.dml</tt>
now adds a
parameter <tt>val</tt> to <tt>field</tt> objects. </add-note></build-id>
<build-id value="6059"><add-note>Unmapped registers names are now properly
anonymized according
to _confidentiality
<bug number="HSD-1508117636"/>. </add-note></build-id>
<build-id value="6066"><add-note> Fixed a regression in use cases where
<tt>if</tt> has a
constant condition, and the taken branch consists of a variable
declaration. I.e., if the code <tt>if (true) local int x;</tt>
appears in a scope, then the variable <tt>x</tt> is now added to
that scope <bug number="HSD-18013028128"/>. </add-note></build-id>
<build-id value="6079"><add-note> If a <tt>static</tt> variable is
declared within a method declared under an object array, it will
now result in a separate instance of the variable for each
instance of the containing object
<bug number="SIMICS-13738"/>. </add-note></build-id>
<build-id value="6082"><add-note> It is no longer possible to
override the <tt>loggroup</tt> parameter inside a <tt>group</tt>
object. </add-note></build-id>
<build-id value="6082"><add-note> Added documentation of the <tt>nothrow</tt>
annotation for methods
<bug number="HSD-18012035545"/>. </add-note></build-id>
<build-id value="6096"><add-note> Fixed a compile error when a DML
1.2 device imports a DML 1.4 file that declares a <tt>saved</tt>
variable inside a register or field
<bug number="SIMICS-17201"/>. </add-note></build-id>
<build-id value="6100"><add-note> Fixed an issue causing assertion error
when accessing the register info of a 1.2 multi-dimensional bank array
<bug number="SIMICS-17308"/>. </add-note></build-id>
<build-id value="6122"><add-note> Added the <tt>--state-change-dml12</tt>
flag, allowing the use of an incomplete version of state change notifiers
in DML 1.2 devices <bug number="SIMICS-17952"/>.</add-note></build-id>
<build-id value="6124"><add-note> Fixed an issue when using the
<tt>--state-change-dml12</tt> flag together with the
<tt>--split-c-file</tt> flag
<bug number="SIMICS-17975"/>.</add-note></build-id>
<build-id value="6132"><add-note> Fixed a few issues where confidential
information could be leaked through non-confidential children of
confidential objects. Specifically, these issues occurred with event
objects belonging to confidential registers, <tt>after</tt> calls to
methods belonging to confidential objects, and accessing <tt>qname</tt> of
non-confidential children belonging to confidential objects.
A warning is now emitted when <tt>qname</tt> of a non-confidential child
of a confidential object is used outside of <tt>log</tt> statements
<bug number="SIMICS-18428"/>.</add-note></build-id>
<build-id value="6149"><add-note> Like in DML 1.4, objects of type
`port` can now be placed inside `group` objects. However, `bank`
objects are still restricted to top level
<bug number="SIMICS-19009"/>. The new object type `subobject` is not
directly accessible in DML 1.2, but it is permitted to import DML 1.4
code that declares `subobject` objects.</add-note></build-id>
<build-id value="6158"><add-note> Add porting rule for uses of
<tt>undefined</tt> as register offsets; replaces such uses with
<tt>unmapped_offset</tt> <bug number="SIMINT-1486"/>.</add-note>
</build-id>
<build-id value="6160"><add-note> Fixed issue where certain parameters defined
in DML 1.4 modules couldn't be referenced within DML 1.2 modules without
the use of <tt>$</tt>.</add-note></build-id>
<build-id value="6213"><add-note> Add porting rule to convert the
<tt>int1</tt> type into <tt>uint1</tt> in DML 1.4, which better resembles
how the type works in 1.2.</add-note></build-id>
<build-id value="6215"><add-note> Improve porting rules for method
return values: In some simple cases, avoid storing the method's
return value in an intermediate local variable.</add-note></build-id>
<build-id value="6218"><add-note> If a bank declared with
<tt>use_io_memory=false</tt> in a DML 1.4 file is imported from
a DML 1.2 device, using the `dml12-compatibility.dml` library,
then a call to the <tt>transaction_access</tt> method will now
trigger a proper bank access. Also, if a bank uses the
<tt>dml12_compat_io_memory_access</tt> template, then overrides of
the <tt>transaction_access</tt> method will be honored. This
simplifies future transition to the Simics 7
API.</add-note></build-id>
</rn>