Project

General

Profile

Actions

Developer Request #9472

open

Неочевидные преобразования типов при вычислении выражений

Added by Alexander Protsenko about 5 years ago. Updated about 1 year ago.

Status:
Open
Priority:
High
Category:
nML Translator
Target version:
Start date:
02/05/2019
Due date:
% Done:

0%

Estimated time:
Published in build:

Description

        trace("store_global: MEM_WORD 1");
        tmp_qword = MEM[mem_index + 1]::MEM[mem_index];
        trace("store_global: MEM_WORD 2 tmp_bit_offset = 0x%x", tmp_bit_offset);
        tmp_qword<tmp_bit_offset + 31..0+tmp_bit_offset> = rs2_op<31..0>;
        trace("store_global: MEM_WORD 3");
        MEM[mem_index + 1]::MEM[mem_index] = tmp_qword;
        trace("store_global: MEM_WORD 4");
Mmu.PreTranslateAddress: satp.mode=0. No translation or protection.
PreTranslateAddress
PreTranslateAddress: read 2
PreTranslateAddress: read 3
store_global: MEM_WORD 2 tmp_bit_offset = 0x28
********************************************************************************
ATTENTION! An unexpected error has occurred:
java.lang.IllegalArgumentException: Assigning 32-bit data to 34-bit location is not allowed.

The program will be terminated. Please contact us at: 
microtesk-support@ispras.ru
We are sorry for the inconvenience.

Exception stack:

java.lang.IllegalArgumentException: Assigning 32-bit data to 34-bit location is not allowed.
    at ru.ispras.microtesk.model.memory.Location.store(ru/ispras/microtesk/model/memory/Location.java:131)
    at ru.ispras.microtesk.model.riscv.op.store_global.action(ru/ispras/microtesk/model/riscv/op/store_global.java:99)
    at ru.ispras.microtesk.model.IsaPrimitive.execute(ru/ispras/microtesk/model/IsaPrimitive.java:183)
    at ru.ispras.microtesk.model.riscv.op.store_rvi.action(ru/ispras/microtesk/model/riscv/op/store_rvi.java:74)
    at ru.ispras.microtesk.model.IsaPrimitive.execute(ru/ispras/microtesk/model/IsaPrimitive.java:183)
    at ru.ispras.microtesk.model.riscv.op.sw.action(ru/ispras/microtesk/model/riscv/op/sw.java:118)
    at ru.ispras.microtesk.model.IsaPrimitive.execute(ru/ispras/microtesk/model/IsaPrimitive.java:183)
    at ru.ispras.microtesk.model.riscv.op.instruction.action(ru/ispras/microtesk/model/riscv/op/instruction.java:77)
    at ru.ispras.microtesk.model.IsaPrimitive.execute(ru/ispras/microtesk/model/IsaPrimitive.java:183)
    at ru.ispras.microtesk.model.InstructionCall.execute(ru/ispras/microtesk/model/InstructionCall.java:68)
    at ru.ispras.microtesk.test.template.ConcreteCall.execute(ru/ispras/microtesk/test/template/ConcreteCall.java:155)
    at ru.ispras.microtesk.test.Executor.executeCall(ru/ispras/microtesk/test/Executor.java:455)
    at ru.ispras.microtesk.test.Executor.executeToBreak(ru/ispras/microtesk/test/Executor.java:348)
    at ru.ispras.microtesk.test.Executor.execute(ru/ispras/microtesk/test/Executor.java:276)
    at ru.ispras.microtesk.test.TemplateProcessor.runExecution(ru/ispras/microtesk/test/TemplateProcessor.java:707)
    at ru.ispras.microtesk.test.TemplateProcessor.runExecutionFromStart(ru/ispras/microtesk/test/TemplateProcessor.java:723)
    at ru.ispras.microtesk.test.TemplateProcessor.finish(ru/ispras/microtesk/test/TemplateProcessor.java:193)
    at ru.ispras.microtesk.test.template.Template.endMainSection(ru/ispras/microtesk/test/template/Template.java:213)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at RUBY.generate(C:/!microtesk/MicroTESK-RISC-V/microtesk-riscv/microtesk-riscv/build/target/lib/ruby/template.rb:1066)
    at RUBY.main(C:\!microtesk\MicroTESK-RISC-V\microtesk-riscv\microtesk-riscv\build\target\lib\ruby\microtesk.rb:33)
    at org.jruby.RubyHash.each(org/jruby/RubyHash.java:1342)
    at RUBY.main(C:\!microtesk\MicroTESK-RISC-V\microtesk-riscv\microtesk-riscv\build\target\lib\ruby\microtesk.rb:29)
    at RUBY.(root)(C:\!microtesk\MicroTESK-RISC-V\microtesk-riscv\microtesk-riscv\build\target\lib\ruby\microtesk.rb:52)
    at ru.ispras.microtesk.RubyRunner.run(ru/ispras/microtesk/RubyRunner.java:62)
    at ru.ispras.microtesk.ScriptRunner.run(ru/ispras/microtesk/ScriptRunner.java:43)
    at ru.ispras.microtesk.test.TestEngine.generate(ru/ispras/microtesk/test/TestEngine.java:172)
    at ru.ispras.microtesk.MicroTESK.generate(ru/ispras/microtesk/MicroTESK.java:284)
    at ru.ispras.microtesk.MicroTESK.runTask(ru/ispras/microtesk/MicroTESK.java:131)
    at ru.ispras.microtesk.MicroTESK.main(ru/ispras/microtesk/MicroTESK.java:79)

********************************************************************************

Возможно стоит выводить больше информации, например имена переменных.

Actions

Also available in: Atom PDF