Как в system V amd64 abi поместить метку в регистр?
Если я хочу поместить метку "L0" в регистр %rbx. Например: movq $L0,%rbx;. Компилятор ругается:
/usr/bin/ld: /home/mm/function.o: relocation R_X86_64_32S against `.text' can not be used when making a shared object;
Я так понимаю где то в данных ее нужно обозначить, как это сделать?
я хочу поместить метку "L0" в регистр %rbx.
relocation R_X86_64_32S against `.text' can not be used when making a shared object
Если это локальная метка -- то по смещению от PC: leaq L0(%rip), %rbx
Если это метка из другой динамической библиотеки -- то через plt: movq L0@gotpcrel(%rip), %rbx