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 #7385 (Closed): The 'prepare' function does not work with randomly selected regis...https://forge.ispras.ru/issues/73852016-07-11T12:26:17ZAndrei Tatarnikovandrewt@ispras.ru
<p>Code like this:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="n">prepare</span> <span class="n">reg</span><span class="p">(</span><span class="n">_</span><span class="p">),</span> <span class="mh">0xDEADBEEF</span>
</pre></code>
<p>leads to the following error:</p>
<pre>
Preparator invocation: REG = 0xdeadbeef
********************************************************************************
ATTENTION! An unexpected error has occurred:
java.lang.IllegalStateException: Value is not set.
The program will be terminated. Please contact us at:
microtesk-support@ispras.ru
We are sorry for the inconvenience.
Exception stack:
java.lang.IllegalStateException: Value is not set.
at ru.ispras.microtesk.test.template.UnknownImmediateValue.getValue(ru/ispras/microtesk/test/template/UnknownImmediateValue.java:111)
at ru.ispras.microtesk.test.template.Argument.getImmediateValue(ru/ispras/microtesk/test/template/Argument.java:119)
at ru.ispras.microtesk.test.template.Preparator.isMatch(ru/ispras/microtesk/test/template/Preparator.java:140)
at ru.ispras.microtesk.test.template.PreparatorStore.getPreparator(ru/ispras/microtesk/test/template/PreparatorStore.java:124)
at ru.ispras.microtesk.test.template.PreparatorStore.getPreparator(ru/ispras/microtesk/test/template/PreparatorStore.java:83)
at ru.ispras.microtesk.test.template.Template.addPreparatorCall(ru/ispras/microtesk/test/template/Template.java:633)
at java.lang.reflect.Method.invoke(java/lang/reflect/Method.java:606)
at RUBY.prepare(/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/dist/lib/ruby/template.rb:662)
at RUBY.run(/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/dist/arch/minimips/templates/euclid.rb:34)
at RUBY.generate(/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/dist/lib/ruby/template.rb:961)
at RUBY.main(/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/dist/lib/ruby/microtesk.rb:35)
at org.jruby.RubyHash.each(org/jruby/RubyHash.java:1342)
at RUBY.main(/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/dist/lib/ruby/microtesk.rb:31)
at RUBY.(root)(/home/andrewt/Documents/ISPRAS/src/microtesk/trunk/microtesk/dist/lib/ruby/microtesk.rb:54)
at ru.ispras.microtesk.test.TestEngine.generate(ru/ispras/microtesk/test/TestEngine.java:153)
at ru.ispras.microtesk.MicroTESK.generate(ru/ispras/microtesk/MicroTESK.java:290)
at ru.ispras.microtesk.MicroTESK.main(ru/ispras/microtesk/MicroTESK.java:72)
</pre></pre> 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 - 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 - Bug #4996 (Closed): [translator] It should be possible to define the "instruction" op...https://forge.ispras.ru/issues/49962014-06-18T11:42:22ZAndrei Tatarnikovandrewt@ispras.ru
<p>The current version has an unreasonable limitation: the "instruction" operation (root) can be defined as an AND rule only. This should be changed. It should be allowed to define the "instruction" operation as an OR rule.</p> MicroTESK - Bug #4281 (Closed): [translator] Support for aliases in memory (aka mem) definitions.https://forge.ispras.ru/issues/42812013-07-01T06:29:20ZAndrei Tatarnikovandrewt@ispras.ru
<p>Подобные конструкции сейчас не поддерживаются транслятором Sim-nML:</p>
<pre>
mem tmp_signed_half_word [1, int(16)]
mem tmp_signed_half_word_A0 [1, int(8)] alias = tmp_signed_half_word[8]
</pre>
<p>Это одна из причин, по которой не удаётся оттранслировать спецификацию процессора MIPS.</p> 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 #4015 (Closed): [translator] Shift and Rotate operations: negative distancehttps://forge.ispras.ru/issues/40152013-03-17T15:00:02ZAndrei Tatarnikovandrewt@ispras.ru
<p>Для данных, моделируемых через RawData, не будут работать операторы сдвига и поворота, если второй операнд (на сколько сдвигаем/поворачиваем) будет отрицательным.</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>