Project

General

Profile

Task #4283

[translator] Support for custom attributes in operations and addressing modes.

Added by Andrei Tatarnikov about 6 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Normal
Category:
-
Target version:
Start date:
07/01/2013
Due date:
05/31/2014
% Done:

100%

Estimated time:
Detected in build:
svn
Published in build:
141230

Description

Транслятор и модель должны поддерживатить использование кастомных аттрибутов. Например, в приведённом ниже куске используется аттрибут loop, который организует цикл путём рекурсии. Для трансляции модели MIPS требуется эта возможность.

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;
    }

History

#1

Updated by Alexander Kamkin over 5 years ago

  • Assignee set to Andrei Tatarnikov
#2

Updated by Alexander Kamkin over 5 years ago

  • Due date set to 05/31/2014
  • Target version set to 2.1
#3

Updated by Andrei Tatarnikov over 4 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

Сейчас конструкции, как в приведенном выше примере, поддерживаются. Можно создавать кастомные аттрибуты-экшены. Есть следующее ограничение - эти аттрибуты доступны только в mode'е или op'е, где они объявлены (т.е. должны вызываться из аттрибута action или других аттрибутов этого mode'а или op'а). Т.к. при обращении извне, которое осуществляется через универсальный интерфейс, они недоступны.

#4

Updated by Andrei Tatarnikov over 4 years ago

  • Status changed from Resolved to Closed
  • Published in build set to 141230

Also available in: Atom PDF