Open-Source Projects: Issueshttps://forge.ispras.ru/https://forge.ispras.ru/favicon.ico?16490126692017-09-23T13:32:46ZOpen-Source Projects
Redmine MicroTESK - Bug #8455 (Rejected): Test Documenthttps://forge.ispras.ru/issues/84552017-09-23T13:32:46ZAndrei Tatarnikovandrewt@ispras.ru
<p>test</p> MicroTESK - Bug #8061 (Rejected): Position of all blocks, calls, data etc. in test templates must...https://forge.ispras.ru/issues/80612017-04-13T13:05:14ZAndrei Tatarnikovandrewt@ispras.ru
<p>subject</p> MicroTESK - Bug #7269 (Rejected): Returning from an exception in the last instruction in a test casehttps://forge.ispras.ru/issues/72692016-06-03T12:04:00ZAndrei Tatarnikovandrewt@ispras.ru
<p>Situation:</p>
<p>1. An exception handler jumps to the instruction that goes next after the instruction that caused the exception.<br />2. The instruction that caused the exception is last in the sequence.<br />3. MicroTESK fails:</p>
<pre>
Generation Aborted
Error: Simulation error. There is no executable code at 0xffffffffa0002260
</pre>
<p>Such situation must be handled and MicroTESK should correctly stop execution.</p> MicroTESK - Bug #7251 (Rejected): A warning or error is needed when a value is truncatedhttps://forge.ispras.ru/issues/72512016-05-25T10:30:24ZAndrei Tatarnikovandrewt@ispras.ru
<p>Constant expressions are cast to nML types depending of the context. For example, in expressions of kind "<code>VARIABLE operator CONSTANT</code>", CONSTANT is cast to the type of VARIABLE. If CONSTANT is larger than can be represented by the type, its higher bits are truncated. This can lead to unexpected results. For this reason, in such situations a warning or an error must be generated.</p>
<p>Example:</p>
<code>In "x + 32" where x has type card(5), 32 gets truncated to 0.</code> MicroTESK - Bug #6194 (Rejected): Automated extraction of addressable unit sizehttps://forge.ispras.ru/issues/61942015-07-13T07:36:34ZAndrei Tatarnikovandrewt@ispras.ru
<p>Need to automatically extract size of addressable unit (by default, byte) from ISA specifications.</p> MicroTESK - Task #5674 (Rejected): Description of test data generation mechanisms (test situation...https://forge.ispras.ru/issues/56742015-03-03T08:59:36ZAndrei Tatarnikovandrewt@ispras.ru
<p>Subj. Need public documentation on this.</p> MicroTESK - Bug #5671 (Rejected): Robustness of test template processing logic must be improvedhttps://forge.ispras.ru/issues/56712015-03-03T08:16:57ZAndrei Tatarnikovandrewt@ispras.ru
<p>The issue: coding mistakes in test templates cause unhandled exceptions.</p>
<p>All such situations (e.g. like in Bug <a class="issue tracker-1 status-6 priority-5 priority-high3 closed" title="Bug: Exception when no test situation is specified. (Rejected)" href="https://forge.ispras.ru/issues/5650">#5650</a>) must be handled in a proper way.<br />That means, MicroTESK should print an understandable error or warning messages and stop processing of the test template or ignore the problematic part (depending on severity of the error).</p>
There two error handling policies to be covered:
<ul>
<li>For errors causes by mistakes in test templates which occurred at first stages of template processing</li>
<li>For errors causes by mistakes in test templates and specifications which occurred during simulation</li>
</ul>
<p>Intensive negative testing of the feature is required.</p> MicroTESK - Bug #5659 (Rejected): Function 'trace' should accept addressing modes as argumentshttps://forge.ispras.ru/issues/56592015-02-27T15:29:30ZAndrei Tatarnikovandrewt@ispras.ru
<p>This would simplify writing test templates</p> MicroTESK - Bug #5650 (Rejected): Exception when no test situation is specified.https://forge.ispras.ru/issues/56502015-02-24T08:36:37ZAndrei Tatarnikovandrewt@ispras.ru
<p>An issue reported by a user:</p>
<blockquote>
<p>Another niggle - if you write<br />mov reg(12), imm(_)<br />without a trailing 'do situation ....' the java throws an exception, it would be more user friendly if it checked for this.</p>
</blockquote>
<p>All such exceptions must be handled.</p> MicroTESK - Task #4900 (Rejected): Printing information on the model should be possiblehttps://forge.ispras.ru/issues/49002014-05-07T07:51:14ZAndrei Tatarnikovandrewt@ispras.ru
<p>Нужно предоставить возможность выводить информацию о модели на экран и в файл. Эта информация может понадобиться пользователю при написании тестовых шаблонов. Для этого Артемием Утехиным был создан файл make_doc.rb (он не очень хорошо написан). Также каждая модель умеет печатать информацию о себе в консоль (метод printInformation). Нужно довести до ума эту функциональность и предоставить возможность пользователю выводить информацию (отдельный скрипт или параметр командной строки), а make_doc.rb убрать за ненадобностью (т.к. гораздо удобнее иметь эту логику в Java-коде).</p> MicroTESK - Task #4283 (Closed): [translator] Support for custom attributes in operations and add...https://forge.ispras.ru/issues/42832013-07-01T10:24:28ZAndrei Tatarnikovandrewt@ispras.ru
<p>Транслятор и модель должны поддерживатить использование <strong>кастомных аттрибутов</strong>. Например, в приведённом ниже куске используется аттрибут loop, который организует цикл путём рекурсии. Для трансляции модели MIPS требуется эта возможность.</p>
<pre>
op CLZ(rd : index, rs : REG_IND_ZERO)
syntax = format ("CLZ %d,%s", rd, rs.syntax)
image = format ("011100%s%5b%5b00000100000", rs.image, rd, rd)
action = {
tmp_signed_byte = 31;
GPR [rd] = 32;
loop;
}
loop = {
if tmp_signed_byte >= 0 then
if ( rs < tmp_signed_byte..tmp_signed_byte > == 0 ) then
tmp_signed_byte = tmp_signed_byte - 1;
else
GPR [ rd ] = 31 - tmp_signed_byte;
tmp_signed_byte = -1;
endif;
loop;
endif;
}
</pre> MicroTESK - Bug #4161 (Rejected): Observing the design state via addressing modeshttps://forge.ispras.ru/issues/41612013-05-08T16:37:18ZAndrei Tatarnikovandrewt@ispras.ru
<p>Нужно сделать возможность читать данные из модели при помощи обектов режимов адресации. Когда мы будем решать ограничения для инструкций, мы не будем знать где именно лежат значения параметров. У нас будут только режимы адресации, параметризированные некими константами. Нам нужно прочитать оттуда входные значения. Т.к. нужно через State Observer полутить туда доступ, создав объект соотвествующего Addressing Mode'а.</p> MicroTESK - Bug #3996 (Closed): [translator] Support for long types (64-bit) in expressionshttps://forge.ispras.ru/issues/39962013-03-11T09:47:24ZAndrei Tatarnikovandrewt@ispras.ru
<p>Сейчас не поддерживаются числа больше 32-х бит (int). При трансляции встречаются выражения, использующие 64-битные константы и транслирующиеся напрямую в Java код (без упаковки в классы Data/RawData). Такие выражения мы не можем оттраслировать т.к. не используем тип long при трансляции в Java. Нужно его использовать.</p>
<p>if (sum < 0xffffffff80000001) then <br /> GPR[rd] = 0x80000001;<br /> CPSR<27..27> = 1;<br />else<br /> GPR[rd] = op1 - op2;<br />endif;</p> MicroTESK - Bug #3995 (Closed): [translator] Support for bitfields using non-constant expressionshttps://forge.ispras.ru/issues/39952013-03-11T09:39:51ZAndrei Tatarnikovandrewt@ispras.ru
<p>Для правильной индентификации типов при обращении к битовым полям вычисляется размер поля (на этапе трансляции).<br />Индексные выражения, как правило, - статически вычисляемые константные выражения. Однако, возможны следующие варианты:</p>
<p>shifter_carry_out = GPR[r]<amount-1..amount-1>;</p>
<p>Такой код не будет транслироваться т.к. amount - не константа. Однако, размер поля можно посчтитать и видно, что он будет равен 1.<br />В модели ARM встречается несколько подобных симметричных конструкций. Для них можно и НУЖНО вычислять размер поля.</p> MicroTESK - Task #3988 (Rejected): Support for forward definitions in the nML translatorhttps://forge.ispras.ru/issues/39882013-03-04T09:18:49ZAndrei Tatarnikovandrewt@ispras.ru
<p>Сейчас forward definitions не поддерживаются в Sim-nML трансляторе. Т.е. если код ссылается на какой-либо внешний элемент,<br />то он должен быть определён ранее в коде. Например, следующий код не будет транслироваться т.к. OR-rule setU ссылается на элементы setUon и setUoff, которые ещё не определены:</p>
<p>mode setU = setUon | setUoff</p>
<p>mode setUon() = 0b1<br /> syntax = "+" <br /> image = "1" <br /> action = {<br /> }</p>
<p>mode setUoff() = 0b0<br /> syntax = "-" <br /> image = "0" <br /> action = {<br /> }</p>