I am not familiar with embedded asm. Can someone explan what the following line does?
"register long r10 __asm__( "r10" ) = a3"
"register long r10 __asm__( "r10" ) = a3"
register long r10 = a3;
but the register keyword is advisory only (the compiler is free to ignore it) and you cannot specify the exact register you want to be used.Reference: https://gcc.gnu.org/onlinedocs/gcc/Local-Reg-Vars.html