Size: a a a

Rust — русскоговорящее сообществo

2020 April 15

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
на выхлопе cranelift
источник

lp

lil pep in Rust — русскоговорящее сообществo
конечно же машинный код
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
lil pep
конечно же машинный код
а где там такое описано, просто я вот смотрел сорцы и там имплементация только под васм
источник

lp

lil pep in Rust — русскоговорящее сообществo
ну я могу предложить посмотреть еще раз )
источник

lp

lil pep in Rust — русскоговорящее сообществo
или например, посмотреть на filetest'ы. Вот первый который я открыл

https://github.com/bytecodealliance/wasmtime/blob/master/cranelift/filetests/filetests/isa/x86/binary32.clif
источник

lp

lil pep in Rust — русскоговорящее сообществo
вот тесты, для простой арифметики из PR который добавляет aarch64
https://github.com/bytecodealliance/wasmtime/pull/1494/files#diff-347749084274dd3416ef153b7688e540R10

честно говоря, если это не поможет я не уверен что тогда поможет )
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Boris Vinogradov
а где там такое описано, просто я вот смотрел сорцы и там имплементация только под васм
Найти код, генерирующий инструкции у меня не получается, но вот эта штука генерит объектные файлы
https://github.com/bytecodealliance/wasmtime/tree/master/cranelift/object
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
Mikail Bagishov
Найти код, генерирующий инструкции у меня не получается, но вот эта штука генерит объектные файлы
https://github.com/bytecodealliance/wasmtime/tree/master/cranelift/object
ну я нашёл этот код
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
но там оно вообще странное
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
т.е. там только лукап без зависимостей
источник

K

Kitsu in Rust — русскоговорящее сообществo
выглядит как ir
источник

BV

Boris Vinogradov in Rust — русскоговорящее сообществo
Mikail Bagishov
Найти код, генерирующий инструкции у меня не получается, но вот эта штука генерит объектные файлы
https://github.com/bytecodealliance/wasmtime/tree/master/cranelift/object
https://github.com/bytecodealliance/wasmtime/tree/master/cranelift/codegen/src - вот это собственно часть которая делает то что описано
источник

lp

lil pep in Rust — русскоговорящее сообществo
это файл тесты которые тестирую какой машинный код будет генерироваться для данного IR, да
источник

K

Kitsu in Rust — русскоговорящее сообществo
Mikail Bagishov
Найти код, генерирующий инструкции у меня не получается, но вот эта штука генерит объектные файлы
https://github.com/bytecodealliance/wasmtime/tree/master/cranelift/object
источник

lp

lil pep in Rust — русскоговорящее сообществo
там действительно все не так просто найти. Там сама кодогенерация автоматизирована.

Есть механизм рецептов который мапит как кодировать IR в машинный код - receipies
источник

lp

lil pep in Rust — русскоговорящее сообществo
это вот только щас добавили
источник

K

Kitsu in Rust — русскоговорящее сообществo
угу
источник

lp

lil pep in Rust — русскоговорящее сообществo
источник

K

Kitsu in Rust — русскоговорящее сообществo
Ну круто если это работает что, а rustc с чем-то кроме wasm-а уже дружит?
источник

lp

lil pep in Rust — русскоговорящее сообществo
(да, эта штука генерирует rust код, лол)
источник