-
major 6
-
note 6
Fixed a bug that caused a crash on the expression1 << 64
(fixes HSD-1306575446). -
release 6 6012
-
note 6
Theread
andwrite
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 onread
orwrite
templates, you will need to rename your user-code defined templates. -
release 6 6018
-
note 6
Theget
andset
methods are now shared in attributes inheriting from the DML 1.4 utility templates (bool_attr
etc.). -
release 6 6019
-
note 6
Theimport
statement has been changed: If the path starts with./
, the path is now interpreted relative to the directory of the importing file (fixes HSD-2209506845). -
note 6
Fixed a bug that caused a bad warning and incorrect code when the operand tosizeof
is an identifier that can be resolved both to a value and to a type. -
release 6 6024
-
note 6
The project build environment is now sensitive to an environment variableDMLC_PORTING_TAG_FILE
, 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 theport-dml.py
script. The -P command-line argument has also been changed: it now takes a filename argument, and can be used without -T. -
release 6 6026
-
note 6
Changed the order in which registers are being reset upon hard_reset or soft_reset, and the ordering of the parametersmapped_registers
andunmapped_registers
. The order is still considered undefined, but in practice it now changes less randomly, and is equal on Simics 5 and Simics 6. -
note 6
Fixed a bug in nestedforeach
loops when traversing register arrays inside bank arrays (fixes HSD-1809370911). -
release 6 6031
-
note 6
It is now permitted to use thenothrow
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 allowsget
andset
methods in common code to be declared as non-throwing, which is required by the DML 1.4 standard library. -
note 6
Fixed a language inconsistency: When DML 1.4 code contains anif
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.2if
statement; it is now interpreted as a DML 1.4if
statement as expected. The difference is that if theif
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 changingif
to#if
. -
release 6 6036
-
note 6
Field arrays are now fully supported and documented, and don't give compile warnings. -
note 6
Fixed a DMLC crash when generating porting tags. -
note 6
Add porting rule for uses of 1-bit fields as booleans; convertsif (f)
intoif (f != 0)
. -
release 6 6041
-
note 6
Fixed a problem with the templatecustom_time_event
fromdml12-compatibility.dml
. -
release 6 6048
-
note 6
Applying bitwise not (~
) on a boolean value now gives a compile error. Previously it resulted in an unconditionally true value, which is not what you want. -
release 6 6049
-
note 6
Fixed an issue with using endian integers as arguments in pointer arithmetic. -
note 6
Fixed an issue preventing assignment from const layout-typed pointers. -
release 6 6050
-
note 6
Taking the address of a bitfield type in a layout will now correctly give you a pointer of the bitfield type. -
release 6 6053
-
note 6
Fixed a crash on methods markednothrow
and multiple return arguments, returning a typed template or struct type (fixes HSD-18012036595). -
note 6
The filedml12-compatibility.dml
now adds a parameterval
tofield
objects. -
release 6 6054
-
note 6
Unmapped registers names are now properly anonymized according to _confidentiality (fixes HSD-1508117636). -
release 6 6059
-
note 6
Fixed a regression in use cases whereif
has a constant condition, and the taken branch consists of a variable declaration. I.e., if the codeif (true) local int x;
appears in a scope, then the variablex
is now added to that scope (fixes HSD-18013028128). -
release 6 6066
-
note 6
If astatic
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 (fixes SIMICS-13738). -
release 6 6079
-
note 6
It is no longer possible to override theloggroup
parameter inside agroup
object. -
note 6
Added documentation of thenothrow
annotation for methods (fixes HSD-18012035545). -
release 6 6082
-
note 6
Fixed a compile error when a DML 1.2 device imports a DML 1.4 file that declares asaved
variable inside a register or field (fixes SIMICS-17201). -
release 6 6096
-
note 6
Fixed an issue causing assertion error when accessing the register info of a 1.2 multi-dimensional bank array (fixes SIMICS-17308). -
release 6 6100
-
note 6
Added the--state-change-dml12
flag, allowing the use of an incomplete version of state change notifiers in DML 1.2 devices (fixes SIMICS-17952). -
release 6 6122
-
note 6
Fixed an issue when using the--state-change-dml12
flag together with the--split-c-file
flag (fixes SIMICS-17975). -
release 6 6124
-
note 6
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,after
calls to methods belonging to confidential objects, and accessingqname
of non-confidential children belonging to confidential objects.A warning is now emitted when
qname
of a non-confidential child of a confidential object is used outside oflog
statements (fixes SIMICS-18428). -
release 6 6132
-
note 6
Like in DML 1.4, objects of typeport
can now be placed insidegroup
objects. However,bank
objects are still restricted to top level (fixes SIMICS-19009). The new object typesubobject
is not directly accessible in DML 1.2, but it is permitted to import DML 1.4 code that declaressubobject
objects. -
release 6 6149
-
note 6
Add porting rule for uses ofundefined
as register offsets; replaces such uses withunmapped_offset
(fixes SIMINT-1486). -
release 6 6158
-
note 6
Fixed issue where certain parameters defined in DML 1.4 modules couldn't be referenced within DML 1.2 modules without the use of$
. -
release 6 6160
-
note 6
Add porting rule to convert theint1
type intouint1
in DML 1.4, which better resembles how the type works in 1.2. -
release 6 6213
-
note 6
Improve porting rules for method return values: In some simple cases, avoid storing the method's return value in an intermediate local variable. -
release 6 6215
-
note 6
If a bank declared withuse_io_memory=false
in a DML 1.4 file is imported from a DML 1.2 device, using thedml12-compatibility.dml
library, then a call to thetransaction_access
method will now trigger a proper bank access. Also, if a bank uses thedml12_compat_io_memory_access
template, then overrides of thetransaction_access
method will be honored. This simplifies future transition to the Simics 7 API. -
release 6 6218
-
major 7
-
release 6 6316
-
release 7 7027
-
release 7 7029
-
release 6 6320
-
release 7 7032
-
release 6 6321
-
release 7 7033
-
release 6 6324