реклама на сайте
подробности

 
 
> Сви прерывания в gcc, переменное количество аргументов??
vova7890
сообщение Nov 20 2010, 07:51
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 19-11-10
Пользователь №: 61 026



Долго искал метод запуска сви на гсс, и недавно нашёл одно единственное решение - инлайновая функция с асм встакой. Так вот оно прокатывает когда есть фиксированное количество аргументов, а вот как быть с переменным? К примеру у меня есть функция sprintf(char *dst, char *mft, ...) под номером сви 22, как сделать вызов сви на такое? Вот как я делаю с фиксированным количеством аргументов.

Код
static inline long do_SWI1( const int swi_num,
    long par0)
{
    long ret_val;

    asm volatile (
        "mov r0, %2 \n\t" \
        "swi %1    \n\t" \
        "mov %0, r0 \n\t" \
        :    "=r" (ret_val)
        :    "n" (swi_num), "r" (par0)
        :    "r0", "r1", "r2", "r3", "ip", "lr", "memory", "cc"
    );

    return ret_val;
}


В асм вставку можно передавать ва_листы? :-D

Сообщение отредактировал vova7890 - Nov 20 2010, 07:51
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- vova7890   Сви прерывания в gcc   Nov 20 2010, 07:51
- - rezident   А в документации разве не описаны правила передачи...   Nov 20 2010, 19:40
- - vova7890   че это не рекомендуется? А че лучше будет когда пр...   Nov 20 2010, 20:02
|- - rezident   Цитата(vova7890 @ Nov 21 2010, 01:02) Как...   Nov 20 2010, 20:25
|- - AHTOXA   rezident, gcc умеет оптимизировать asm-вставки. v...   Nov 20 2010, 21:40
|- - vova7890   Цитата(AHTOXA @ Nov 21 2010, 00:40) rezid...   Nov 21 2010, 06:33
- - vova7890   Похоже это невозможно, или никто не знает   Nov 21 2010, 19:48
- - vova7890   блин, и тип double неправильно передаётя... Короче...   Nov 22 2010, 07:59
|- - klen   Цитата(vova7890 @ Nov 22 2010, 10:59) бли...   Nov 24 2010, 19:05
- - vova7890   да вот уже 4-й день никак не придумаю... видимо по...   Nov 25 2010, 10:41
|- - Сергей Борщ   QUOTE (vova7890 @ Nov 25 2010, 12:41) да ...   Nov 25 2010, 11:16
- - vova7890   КАК РАЗОБРАТЬ ЭТИ ПАРАМЕРТЫ ДЛЯ АСМ ВСТАВКИ!...   Nov 25 2010, 13:36
|- - Сергей Борщ   QUOTE (vova7890 @ Nov 25 2010, 15:36) КАК...   Nov 25 2010, 14:21
- - vova7890   А вы думаете я так не пробывал? Не совсем так но ч...   Nov 25 2010, 17:03
- - vova7890   Вот что происходит: Код char *temp = (char*...   Nov 26 2010, 07:39
|- - Сергей Борщ   QUOTE (vova7890 @ Nov 26 2010, 09:39) я е...   Nov 26 2010, 13:49
- - vova7890   Код.text:00000560 EXPORT start .text:0...   Nov 26 2010, 20:46
- - vova7890   Я пробовал уже наверно все что можно, спасибо коне...   Nov 26 2010, 22:12


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 21:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01453 секунд с 7
ELECTRONIX ©2004-2016