In `binutils/bfd/elf32-avr.c`, the line that actually computes the relocation:
`x = (x & 0xf000) | (srel & 0xfff);` Is only modifying bits in the `0xfff` mask, a total of 12 bits. This makes it seem even more strange. On Thu, Feb 19, 2015 at 3:11 PM, Dylan McKay <dylanmcka...@gmail.com> wrote: > Hello, > > I'm working on a port <https://github.com/avr-llvm/llvm> of LLVM for AVR. > I am currently adding AVR support to the linker, but I have a question > about something that seems strange. > > This relocation is solely for the relative `jmp` and `call` instructions > (if I'm not mistaken). > > Both of these instructions have exactly 12 bits for their target address. > Why is the relocation 13 bits then? > > Thanks, > Dylan >
_______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org https://lists.nongnu.org/mailman/listinfo/avr-gcc-list