Project

General

Profile

Actions

Bug #12198

open

Bit vector sizes do not match: 64 != 3.

Added by Alexander Protsenko almost 2 years ago. Updated almost 2 years ago.

Status:
Resolved
Priority:
Normal
Category:
Specification
Target version:
Start date:
03/01/2023
Due date:
% Done:

100%

Estimated time:
Detected in build:
git
Platform:
Published in build:

Description

Ошибка:

Optimizing MIR...
  list dependencies...
  188/945...
********************************************************************************
ATTENTION! An unexpected error has occurred:
java.lang.IllegalArgumentException: Bit vector sizes do not match: 64 != 3.

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

Exception stack:

java.lang.IllegalArgumentException: Bit vector sizes do not match: 64 != 3.
    at ru.ispras.fortress.data.types.bitvector.BitVectorMath.checkEqualSize(BitVectorMath.java:1255)
    at ru.ispras.fortress.data.types.bitvector.BitVectorMath.transform(BitVectorMath.java:1231)
    at ru.ispras.fortress.data.types.bitvector.BitVectorMath.add(BitVectorMath.java:869)
    at ru.ispras.microtesk.translator.mir.BvOpcode$1.evalBitVector(BvOpcode.java:27)
    at ru.ispras.microtesk.translator.mir.BvOpcode.evalConst(BvOpcode.java:139)
    at ru.ispras.microtesk.translator.mir.EvalContext.visit(EvalContext.java:137)
    at ru.ispras.microtesk.translator.mir.Instruction$Assignment.accept(Instruction.java:43)
    at ru.ispras.microtesk.translator.mir.EvalContext.eval(EvalContext.java:122)
    at ru.ispras.microtesk.translator.mir.InlinePass.apply(InlinePass.java:44)
    at ru.ispras.microtesk.translator.mir.MirPassDriver.apply(MirPassDriver.java:83)
    at ru.ispras.microtesk.translator.mir.MirPassDriver.run(MirPassDriver.java:104)
    at ru.ispras.microtesk.translator.mir.MirTransHandler.processIr(MirTransHandler.java:75)
    at ru.ispras.microtesk.translator.mir.MirTransHandler.processIr(MirTransHandler.java:54)
    at ru.ispras.microtesk.translator.Translator.processIr(Translator.java:84)
    at ru.ispras.microtesk.translator.nml.NmlTranslator.start(NmlTranslator.java:131)
    at ru.ispras.microtesk.translator.Translator.translate(Translator.java:201)
    at ru.ispras.microtesk.MicroTESK.translate(MicroTESK.java:167)
    at ru.ispras.microtesk.MicroTESK.runTask(MicroTESK.java:159)
    at ru.ispras.microtesk.MicroTESK.main(MicroTESK.java:84)

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

> Task :translateK64 FAILED

Нужно внести правки в спецификацию.
Сложность состоит в том, что нужно определить это место.

Actions #1

Updated by Alexander Protsenko almost 2 years ago

  • Status changed from New to Open

Код с ошибкой:

op FPConditionCode (cc: card(3))
  action = {
    if cc == 0 then
      FPConditionCode_value = FCSR_FCC_0;
    else
      FPConditionCode_value = FCSR_FCC_1_7<cc-1>;
    endif;
  }

Ошибка в строке: FPConditionCode_value = FCSR_FCC_1_7<cc-1>;

Корректный вариант:

var temp_cc [card(3)]

op FPConditionCode (cc: card(3))
  action = {
    if cc == 0 then
      FPConditionCode_value = FCSR_FCC_0;
    else
      temp_cc = cc-1;
      FPConditionCode_value = FCSR_FCC_1_7<temp_cc>;
    endif;
  }

(Предположу, что ошибка связана с появлением возможности задать диапазон через "-")

Actions #2

Updated by Alexander Protsenko almost 2 years ago

  • Status changed from Open to Resolved
  • % Done changed from 0 to 100
Actions

Also available in: Atom PDF