User Tag List

Показано с 41 по 50 из 125

Тема: LLVM Backend для Z80

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

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

    Регистрация
    17.01.2006
    Адрес
    Тамбов
    Сообщений
    97
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Цитата Сообщение от mastermind Посмотреть сообщение
    Насколько я понимаю, она просто генерит ir-код используя доступные на процессоре операции. (т.е. полезно для быстрой реализации всяких умножений/делений, операций с разрядностью больше 8 и т.д.).
    Вот это было бы очень здорово. Компилер нужен именно с поддержкой 32-битных типов (хотя бы целочисленных), ибо 8/16 битных С-компилеров для Z80/8080 и так пруд пруди.
    Разобрался я с этим RTLIB. Вообщем эта штука немного другое делает. Если в двух словах, то она для неподдерживаемых архитектурой команд вставляет вызовы функций с заданными именами. Т.е. можно будет написать библиотеку где будут эти функции и просто линковать скомпилированную программу с этой библиотекой. Например Z80 никак не поддерживает команду умножения и деления, а в llvm есть такие команды.
    Код:
    define i8 @test(i8 %a, i8 %b)
    {
    	%res = mul i8 %a, %b
    	ret i8 %res
    }
    После компиляции получается вот что:
    Код:
    	call	_mathLib_MULi8
    	ret
    Аргументы передаются в регистрах A, B. Функция возвращает результат в регистре A.

    Однако llvm все же радует кое чем. Например если архитектура имеет только 16 битные регистры, то llvm сам умеет создавать цепочку команд для вычисления 32 битных (и более) чисел с помощью имеющихся регистров.
    Последний раз редактировалось EARL; 02.11.2012 в 18:14.

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

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

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

Ваши права

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