Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Feb 2008 09:34:21 -0800
From:      Marcel Moolenaar <xcllnt@mac.com>
To:        Rafal Jaworowski <raj@semihalf.com>
Cc:        Marcel Moolenaar <marcel@freebsd.org>, Perforce Change Reviews <perforce@freebsd.org>
Subject:   Re: PERFORCE change 135517 for review
Message-ID:  <ABEEBD0D-6693-4448-8D2F-679F37367832@mac.com>
In-Reply-To: <47B84D9B.4010903@semihalf.com>
References:  <200802162141.m1GLfgkj048217@repoman.freebsd.org> <47B75EB3.2020001@semihalf.com> <504560A3-EABB-4896-8B3E-C7FC89F31EFB@mac.com> <47B84D9B.4010903@semihalf.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Feb 17, 2008, at 7:07 AM, Rafal Jaworowski wrote:

> Marcel Moolenaar wrote:
>>>>    Save U-Boot's registers at startup and restore them when
>>>>    performing a syscall. This way we don't have to compile
>>>>    code specially to avoid using those registers. Otherwise
>>>>    we have to encode knowledge of those registers in at least
>>>>    4 makefiles and introduce a build knob to enable it all.
>>>>    This does not allow us to build everything with a single
>>>>    build world.
>>>
>>> Hi Marcel,
>>>
>>> I'm not quite sure this is sufficient... I already had a similar
>>> save/restore
>>> in place, but there is some general problem with U-Boot that leads  
>>> to
>>> hangs
>>> (experienced):
>>
>> Interesting, I didn't see any such problems with 1.3.2-rc1.
>>
>
> After a bit of digging, I guess this is why it didn't bite you up  
> front: very
> recently (last minute inclusions during 1.3.2-rc1 preparation)  
> Wolfgang
> changed the dedicated regs layout... with r29 going -> r2 due to  
> certain
> problems with gcc 4.x producing bigger code when not all 'high'  
> registers it
> likes are available in the whole block etc.

I'm happy I removed all that knowledge in makefiles and put it in a
single source file. Maybe we should save and restore all registers
so that we don't have to worry about it anymore.

> Anyway, the pointer to global_data
> now became r2, which is system/reserved according to ABI, so r29  
> unsafety is
> gone.

I like that change. It makes a lot of sense.

> I think the easiest way to go would be following this recent change  
> and switch
> r14 -> r13. R13 is also non-volatile in ABI and serves small data area
> pursposes, and we could use it for GOT ptr. This way no context save/ 
> restore
> would be necessary at all. I'll follow up on this on u-boot-users ML.

I like that too. If access to the GOT is not performance critical,
it can also be put in the global data so that there's only r2...

Anyway: Good catch!

-- 
Marcel Moolenaar
xcllnt@mac.com





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ABEEBD0D-6693-4448-8D2F-679F37367832>