Важная информация

User Tag List

Страница 12 из 13 ПерваяПервая ... 8910111213 ПоследняяПоследняя
Показано с 111 по 120 из 125

Тема: LLVM Backend для Z80

  1. #111
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от EARL Посмотреть сообщение
    Сообщение от Shadow Maker Посмотреть сообщение
    А так вообще вот чувак более живой, пилит что-то: https://github.com/jacobly0/llvm-z80
    Да, у этого человека в настоящий момент идет понемногу движуха, но я не пробовал тестировать его код.

    Судя по данной ветке тамошнего форума:
    https://tiplanet.org/forum/viewtopic...18038&p=197788
    используя реализацию от jacobly, на CLang получилось собирать достаточно сложные проекты. Я правда не понял там таргет Z80 или ez80?
    Последний коммит 26 Oct 2017.
    Хотелось бы мнения от интересующихся.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  2. #112
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,105
    Спасибо Благодарностей отдано 
    772
    Спасибо Благодарностей получено 
    643
    Поблагодарили
    398 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот тут упоминаются два таргета, z80 и ez80.

    https://github.com/jacobly0/llvm-z80...TargetInfo.cpp

    На форуме третье сообщение снизу с полными инструкциями для сборки от печки. Проще попробовать?
    Больше игр нет

  3. #113
    Activist
    Регистрация
    21.08.2009
    Адрес
    Cyprus
    Сообщений
    233
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Еще две попытки создания LLVM-бэкэнда:

    1. https://github.com/Bevinsky/llvm-gbz80 (GBZ80 - урезанная версия Z80 для GameBoy)
    * Инструкция по сборке: https://github.com/Bevinsky/llvm-gbz...d-instructions
    * Dockerfile для сборки этого проекта в docker: https://github.com/dfrankland/docker-gameboy

    2. https://github.com/MI-CHI/llvm-z80-backend

  4. #114
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    656
    Поблагодарили
    511 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вопрос
    даже если оно кто то допишет
    чего это нам такого даст?

  5. #115
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    вопрос
    даже если оно кто то допишет
    чего это нам такого даст?
    а што ты ждеш?

  6. #116
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    656
    Поблагодарили
    511 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shiny Посмотреть сообщение
    а што ты ждеш?
    Я ничего не жду
    и уверен что пишется просто ради писания и ради того чтоб было

    а спрашиваю можот кто то чего то и ждет и видит этому применение

  7. #117
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    Я ничего не жду
    и уверен что пишется просто ради писания и ради того чтоб было

    а спрашиваю можот кто то чего то и ждет и видит этому применение
    мне показалось, что ворчиш(:
    по идее берешь raze.dll, лепишь к нему немножко кода и получаешь эмуляцию. С таймингом не разбирался.

  8. #118
    Activist
    Регистрация
    21.08.2009
    Адрес
    Cyprus
    Сообщений
    233
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    Я ничего не жду
    и уверен что пишется просто ради писания и ради того чтоб было

    а спрашиваю можот кто то чего то и ждет и видит этому применение
    Те кто пишут, дорабатывают сразу же clang заодно. Т.е. хотят как минимум этот C/C++ компилятор использовать. Можно еще, например, Rust доработать. Еще Carp, возможно, хорошо бы лег на 8-битные платформы ( https://github.com/carp-lang/Carp ) - он генерирует C.

  9. #119
    Member
    Регистрация
    24.03.2008
    Адрес
    г. Рыбинск
    Сообщений
    123
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я как-то находил инструкции по сборке LLVM clang для z80. Я там мало что понял. Но там, похоже, получаются таргеты для z80 и ez80. Собирается все очень долго и муторно. Чтобы второй раз все не искать, собрал все в одном месте и завернул в образ на Dockerhub. Так что теперь собирать самому не надо (весь день). Весит 1.3 Гб примерно.

    https://github.com/UA3MQJ/z80-llvm
    https://hub.docker.com/repository/docker/ua3mqj/z80llvm

    На компьютере должен быть установлен Docker. Вроде бы можно даже на Windows, но я не пробовал.

    Кладем в текущую папку файл, запускаем и попадаем в среду контейнера, где доступен clang
    Код:
    docker run --rm -it -v$(pwd):/current_dir ua3mqj/z80llvm:1.0.3 bash
    Компилируем
    Код:
    clang -cc1 -triple z80 -S -O3 -o test1.s test1.c
    Из такой функции
    Код:
    char foo(char a, char b) {
        return a + b;       
    }
    получаем такой выхлоп
    Код:
    	SEGMENT	CODE
    	.file	"test1.c"
    	XDEF	_foo
    _foo:
    	push	ix
    	ld	ix, 0
    	add	ix, sp
    	ld	a, (ix + 6)
    	add	a, (ix + 4)
    	pop	ix
    	ret
    Далее не пока не экспериментировал.

  10. Эти 4 пользователя(ей) поблагодарили UA3MQJ за это полезное сообщение:

    Eltaron (04.11.2020), mastermind (11.11.2020), Oleg N. Cher (04.11.2020), Valen (05.11.2020)

  11. #120
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,593
    Спасибо Благодарностей отдано 
    2,158
    Спасибо Благодарностей получено 
    130
    Поблагодарили
    96 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Меня заинтересовало, что кодогенератор Clang разворачивает рекурсию в цикл. Это реально любопытно. Смотрите (в репе) пример с факториалом.

    Сюда бы ещё асм-вставки и регистровую модель передачи параметров... а может есть?)

Страница 12 из 13 ПерваяПервая ... 8910111213 ПоследняяПоследняя

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

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

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

Ваши права

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