AntKrotov / oberon-07-compiler

Oberon-07 compiler for x64 (Windows, Linux), x86 (Windows, Linux, KolibriOS), MSP430x{1,2}xx, STM32 Cortex-M3
BSD 2-Clause "Simplified" License
61 stars 5 forks source link

Prospero78su #3

Closed prospero78 closed 5 years ago

prospero78 commented 5 years ago

Перенос константы

prospero78 commented 5 years ago

Хм. Похоже, свою ветку с твоей не смержил. Сделай потом ещё раз пул-реквест мне с удалёнными неиспользуемыми константами.

prospero78 commented 5 years ago

Хм. Смержил твою ветку, всё пучком))

AntKrotov commented 5 years ago

Лучше не менять номера констант op<>. Но если изменять, то изменить все константы на одну и ту же величину, например: было opADD = 17; opSUB = 18; opADDL = 19; opSUBL = 20; стало opADD = 1017; opSUB = 1018; opADDL = 1019; opSUBL = 1020; Но я всё же не уверен, что это безопасно.

AntKrotov commented 5 years ago

Да, вот еще. Верни константу codeFregs в модуль CODE. Она показывает общее количество вещественных регистров, но поскольку это число может быть различно для разных архитектур, то я планирую в дальнейшем (и скоро) заменить ее на переменную.

prospero78 commented 5 years ago

Лучше не менять номера констант op<>. Но если изменять, то изменить все константы на одну и ту же величину, например: было opADD = 17; opSUB = 18; opADDL = 19; opSUBL = 20; стало opADD = 1017; opSUB = 1018; opADDL = 1019; opSUBL = 1020; Но я всё же не уверен, что это безопасно.

Собственно, моя мысль и заключалась в том, чтобы для разных назначений создать разные диапазоны:

  1. 0+
  2. 1000+
  3. 2000+ и т. д. Потом такие разрывы в диапазонах можно использовать в ASSERT (не пересекающиеся множества). Число регистров верну назад.