перевод сборки powerpc

Может ли кто-нибудь, кто разбирается в сборке мощного компьютера, помочь мне расшифровать этот код?

extern inline void out_8(volatile unsigned char __iomem *addr, u8 val)
{
    __asm__ __volatile__("sync;\n"
                 "stb%U0%X0 %1,%0;\n"
                 : "=m" (*addr)
                 : "r" (val));
}

Спасибо большое за помощь.


person txcotrader    schedule 03.04.2013    source источник
comment
Я не эксперт, но для меня это выглядит так, как будто он просто сохраняет значение байта val в ячейке памяти, обозначенной addr.   -  person 500 - Internal Server Error    schedule 04.04.2013


Ответы (1)


Синхронизация — это означает, что память и неупорядоченный буфер — сбрасывают кеши и тому подобное, за которыми следует байт сохранения. Похоже на запись байта барьера памяти. Подтверждаю... да. синхронизация используется для того, чтобы убедиться, что все предыдущие инструкции завершены на процессоре, а следующие инструкции не запущены. Интересно, что symc обычно происходит после сохранения, а не до, поэтому приведенный выше код подтверждает, что перед выполнением записи байта нет других ожидающих операций записи.

person Michael Dorgan    schedule 03.04.2013