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>