Я пытаюсь записать встроенную сборку в GCC, которая записывает значение в #define в регистр.
#define SOME_VALUE 0xDEADBEEF
void foo(void)
{
__asm__("lis r5, SOME_VALUE@ha");
__asm__("ori r5, r5, SOME_VALUE@l");
}
Однако при компиляции возникает ошибка:
неопределенная ссылка на `SOME_VALUE '
Есть ли способ для ассемблера увидеть #define
во встроенной сборке?
Я решил это, выполнивследующее:
#define SOME_VALUE 0xDEADBEEF
__asm__(".equ SOME_VALUE, 0xDEADBEEF");
void foo(void)
{
__asm__("lis r5, SOME_VALUE@ha");
__asm__("ori r5, r5, SOME_VALUE@l");
}
Однако я действительно не хочу дублировать значение.