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 16:28:57 +1300

I think you just gave me an epiphany - is that because all AVR instructions are 16-bits or 32-bits, so all instruction offsets must be even and an even binary number always has a LSB of 0?

That would explain all of the right-shifts in `binutils`. So I take it that the AVR core in its deep, dark, HDL cave, simply left shifts the offset during the execute cycle? That way we save a bit in the instruction encoding that was always going to be the same?

On Thu, Feb 19, 2015 at 3:59 PM, Jeff Barlow <address@hidden> wrote:
On 02/18/2015 06:11 PM, Dylan McKay wrote:

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?

The resulting LSB of of those relocations is always zero, of course. The 12 bits in the instructions are bits 1 - 12. With the assumed zero LSB that's 13 bits total.

--
Later,
Jeff

_______________________________________________
AVR-GCC-list mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/avr-gcc-list


reply via email to

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