User Tag List

Показано с 1 по 10 из 125

Тема: LLVM Backend для Z80

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    21.08.2009
    Адрес
    Cyprus
    Сообщений
    236
    Спасибо Благодарностей отдано 
    91
    Спасибо Благодарностей получено 
    24
    Поблагодарили
    20 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Немного комментариев по поводу особенностей моей заготовки:

    В документации где-то было сказано что "ultimate design goal" или вроде того - чтобы можно было модель cpu (backend) сделать полностью с помощью tablegen. (.td-файлы)
    В русле стремления к этому например были приняты такие решения:

    - группировать регистры (в классы) по наборам инструкций в которых они могут быть использованы (отсюда например такие классы как R16_BC_DE_HL, R16_BC_DE_IX_SP и т.д.) + соответствующая группировка инструкций,

    - операции обмена между регистрами реализовать с помощью "виртуальных регистров", например (упрощенно):
    Код:
    def V_DEHL : RegisterWithSubRegs<"v_dehl", [DE,HL]>;
    def V_HLDE : RegisterWithSubRegs<"v_hlde", [HL,DE]>;
    
    let Defs = [DE,HL] in
    def EX_DE_HL : I<0xEB, RawFrm, (outs), (ins), "ex\tde, hl", [(set V_DEHL, V_HLDE)]>;
    - опкоды (точнее биты которые присутствуют (=1) во всех вариациях инструкций, иначе говоря этакие "базовые опкоды") также присутствуют в .td для дальнейшего использования в реализации MC и т.п.
    Последний раз редактировалось mastermind; 21.10.2012 в 16:23.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •