Я определил следующие макросы в моей C программе:
#define ISE1 "cust_add"
#define ISE2 "cust_sub"
#define ise_inst(inst, a, b, c) \
asm volatile (
" " inst " %1, %2, %0 \n\t" \
: "=r" (c) \
: "r" (a), "r" (b) \
: "%g0" \
)
В основной процедуре я вызываю макрос со следующими параметрами:
ise_inst(ISE1, inp1, inp2, res);
В идеале, препроцессор должен расширять все это так, чтобы я получил следующий результат:
asm volatile (
" cust_add %1, %2, %0 \n\t"
: "=r" (res)
: "r" (inp1), "r" (inp2)
: "%g0"
);
Кто-нибудь знает, что я сделал не так? На данный момент препроцессор сообщает мне
ошибка: ошибка разбора перед строковой константой (@ line: "" inst "% 1,% 2,% 0 \ n \ t")