У EARL последний коммит в 2013 году, о чем вы говорите.
- - - Добавлено - - -
А так вообще вот чувак более живой, пилит что-то: https://github.com/jacobly0/llvm-z80
У EARL последний коммит в 2013 году, о чем вы говорите.
- - - Добавлено - - -
А так вообще вот чувак более живой, пилит что-то: https://github.com/jacobly0/llvm-z80
Свирепый агрессивно-депрессивный мордовец!
Не уверен - не напрягай!
Не сдавайся. Дыши?
Virtual TR-DOS
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Еще две попытки создания 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
вопрос
даже если оно кто то допишет
чего это нам такого даст?
Те кто пишут, дорабатывают сразу же clang заодно. Т.е. хотят как минимум этот C/C++ компилятор использовать. Можно еще, например, Rust доработать. Еще Carp, возможно, хорошо бы лег на 8-битные платформы ( https://github.com/carp-lang/Carp ) - он генерирует C.
Я как-то находил инструкции по сборке 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
Eltaron(04.11.2020), mastermind(11.11.2020), Oleg N. Cher(04.11.2020), Valen(05.11.2020)
UA3MQJ(05.11.2020)
Меня заинтересовало, что кодогенератор Clang разворачивает рекурсию в цикл. Это реально любопытно. Смотрите (в репе) пример с факториалом.
Сюда бы ещё асм-вставки и регистровую модель передачи параметров... а может есть?)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)