Project

General

Profile

Bug #10653

MicroTESK mode: IsaPrimitive cannot be converted

Added by Alexander Protsenko 5 months ago. Updated 5 months ago.

Status:
New
Priority:
Normal
Category:
nML Translator
Target version:
Start date:
12/28/2020
Due date:
% Done:

0%

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

Description

Пример кода:

reg RRR [256, LONG]

mode V4 (i: card(4)) = RRR[i]
  syntax = format("v%s", i)
  image  = format("%4s", i)

mode V8 (i: card(8)) = RRR[i]
  syntax = format("v%s", i)
  image  = format("%8s", i)

mode VX = V8
        | V4

let MOV_OPCODE = 0x1

internal op mov_bug (opcode: card(8), vd: VX, vs: VX)
  syntax = format("mov %s, %s", vd.syntax, vs.syntax)
  image  = format("%8s%s%s", opcode, vd.image, vs.image)
  action = {
    vd = vs;
  }

op mov_bug_v4 (vd: V4, vs: V4)
  syntax = format("%s", mov_bug(MOV_OPCODE, vd, vs).syntax)
  image  = format("%s", mov_bug(MOV_OPCODE, vd, vs).image)
  action = {
    mov_bug(MOV_OPCODE, vd, vs).action;
  }

Ошибка:

MicroTESK\microtesk-mips64\build\generated-src\models\src\java\ru\ispras\microtesk\model\mips64\decoder\DecoderMov_bug_v4.java:69: error: incompatible types: IsaPrimitive cannot be converted to V4
    vd = mov_bug_instance.vd;
                         ^
MicroTESK\microtesk-mips64\build\generated-src\models\src\java\ru\ispras\microtesk\model\mips64\decoder\DecoderMov_bug_v4.java:70: error: incompatible types: IsaPrimitive cannot be converted to V4
    vs = mov_bug_instance.vs;
                         ^
2 errors

FAILURE: Build failed with an exception.

Also available in: Atom PDF