Actions
Task #4283
closed[translator] Support for custom attributes in operations and addressing modes.
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; }
Updated by Alexander Kamkin almost 11 years ago
- Assignee set to Andrei Tatarnikov
Updated by Alexander Kamkin over 10 years ago
- Due date set to 05/31/2014
- Target version set to 2.1
Updated by Andrei Tatarnikov almost 10 years ago
- Status changed from New to Resolved
- % Done changed from 0 to 100
Сейчас конструкции, как в приведенном выше примере, поддерживаются. Можно создавать кастомные аттрибуты-экшены. Есть следующее ограничение - эти аттрибуты доступны только в mode'е или op'е, где они объявлены (т.е. должны вызываться из аттрибута action или других аттрибутов этого mode'а или op'а). Т.к. при обращении извне, которое осуществляется через универсальный интерфейс, они недоступны.
Updated by Andrei Tatarnikov almost 10 years ago
- Status changed from Resolved to Closed
- Published in build set to 141230
Actions