The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск языка программирования Rust 1.59 с поддержкой ассемблерных вставок"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Выпуск языка программирования Rust 1.59 с поддержкой ассембл..." +/
Сообщение от Аноним (-), 25-Фев-22, 15:43 
> В Расте полноценных asm вставок не было.

С такой "логикой" в сишке их тоже не было (и емнип и в с11 не появилось):
> ISO/IEC 9899:TC3
> J.5.10 The asm keyword
> The asm keyword may be used to insert assembly language directly into the translator
> output (6.8). The most common implementation is via a statement of the form:
> asm ( character-string-literal );

Т.е. определено лишь ключевое слово, да и реализация - не обязательна. И asm-синтаксис MSVC не (был - давно не тыкал) совместим с GCC.

> В Редоксе вставки были наколенные взятые видимо из LLVM.

Ну-да, ну-да, собирали либастралом.
https://gitlab.redox-os.org/redox-os/kernel/-/blob/master/sr...


pub unsafe fn ttbr0_el1() -> u64 {
     let ret: u64;
     llvm_asm!("mrs $0, ttbr0_el1" : "=r" (ret));
     ret
}
https://docs.rs/syscall/latest/src/syscall/platform/linux-x8...

// Copyright 2014 The syscall.rs Project Developers.
#[inline(always)]
pub unsafe fn syscall0(n: usize) -> usize {
    let ret : usize;
    asm!("syscall" : "={rax}"(ret)
                   : "{rax}"(n)
                   : "rcx", "r11", "memory"
                   : "volatile");
    ret
}


Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Выпуск языка программирования Rust 1.59 с поддержкой ассемблерных вставок, opennews, 24-Фев-22, 21:41  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру