получить lr вызывающего из подпрограммы в переменную C - arm
У меня есть функция C, которая должна получить значение регистра lr вызывающего в локальную переменную.
Я пробовал следующий код:
volatile long lr;
asm(
"str %0, [sp, #4]\n" :
"=r", (lr)
);
Однако это ничего не меняет. Дело не в том, что я получаю неправильное значение, просто в том, что значение локальной переменной lr совсем не меняется (содержит мусор).
Есть идеи?
Спасибо!