avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-gcc-list] ELF R_AVR_13_PCREL Relocation


From: Dylan McKay
Subject: Re: [avr-gcc-list] ELF R_AVR_13_PCREL Relocation
Date: Thu, 19 Feb 2015 15:37:25 +1300

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 <address@hidden> wrote:
Hello,

I'm working on a port 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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]