https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62663
--- Comment #3 from angelo <angelo70 at gmail dot com> --- This is probably a non-bug. I was confused last night, you are right, move.l square_test@GOT(%a5),%a0 jsr (%a0) Is generated and is correct (move.l, instruction set is the same of m68k). But this jump results to a next illegal instruction exception. I see then %a5 loaded with 0xffc14900 (correct, see got in the .map file) But, once loaded %a0, it contains a 0x70000000, that's a completely invalid address.