Project

General

Profile

Bug #3995

[translator] Support for bitfields using non-constant expressions

Added by Andrei Tatarnikov over 6 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Category:
-
Target version:
-
Start date:
03/11/2013
Due date:
% Done:

100%

Estimated time:
Detected in build:
svn
Platform:
Published in build:
20140320

Description

Для правильной индентификации типов при обращении к битовым полям вычисляется размер поля (на этапе трансляции).
Индексные выражения, как правило, - статически вычисляемые константные выражения. Однако, возможны следующие варианты:

shifter_carry_out = GPR[r]<amount-1..amount-1>;

Такой код не будет транслироваться т.к. amount - не константа. Однако, размер поля можно посчтитать и видно, что он будет равен 1.
В модели ARM встречается несколько подобных симметричных конструкций. Для них можно и НУЖНО вычислять размер поля.


Files

bug3995.nml (332 Bytes) bug3995.nml Andrei Tatarnikov, 01/14/2014 01:58 PM

History

#1

Updated by Andrei Tatarnikov over 6 years ago

  • Assignee set to Andrei Tatarnikov
#2

Updated by Andrei Tatarnikov over 5 years ago

В r1593 это исправлено. Пример прикреплён.

#3

Updated by Alexander Kamkin over 5 years ago

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

Also available in: Atom PDF