[Top][All Lists]

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

Re: [Tinycc-devel] [ RFC] About packing two infos in a long v2

From: robotux
Subject: Re: [Tinycc-devel] [ RFC] About packing two infos in a long v2
Date: Thu, 15 Nov 2012 12:56:51 +0100
User-agent: Roundcube Webmail/0.5.3

On Sat, 10 Nov 2012 16:33:33 +0100, Daniel Glöckner wrote:
On Wed, Nov 07, 2012 at 04:18:00PM +0100, Thomas Preud'homme wrote:
Le mercredi 7 novembre 2012 16:09:51, Milutin Jovanović a écrit :
> Other then that, looks OK to me. BTW, I did not check correctness, just
> reviewed the style and logic.

Don't worry for the correctness. GOT needs to be aligned on 4 bytes on ARM so I know it's fine. I tested the code successfully on ARM and it yields the
correct result on my tests.

Can we assume GOT entries are aligned to 2 bytes on all architectures?

In fact currently in tcc, GOT entries are all at least 4 bytes aligned. Indeed, s1->got->data_offset is always incremented by PTR_SIZE which is 4 or greater. Thus I could use the new structure unconditionnally and add a #if PTR_SIZE < 2 #error + a check in section_ptr_add to unsure we catch any changes of how GOT entries are aligned. That would make for a much smaller patch and more consistent situation.

Any thought people?

By the way, why is the following code used in fill_got_entry:

offset = get_got_offset(s1, sym_index);
section_reserve(s1->got, offset + PTR_SIZE);

when section_ptr_add(s1->got, PTR_SIZE) would have the same effect?


Best regards,


reply via email to

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