RE: Regarding thread context.
I can't comment on this specific code, since I'm not familiar with the ABI.
In general, if you have a choice, it is best to push exactly those registers
that might contain pointers. On some platforms that might include things
like floating point registers, if the compiler will spill integer registers
to those.
I would not include OS-reserved registers which it is unsafe
for the compiler to use anyway. Including them is unlikely to make a real
difference since, as you say, they will probably not contain valid pointers
anyway. But since it also saves some code to exclude them, there's no
reason to do otherwise. (I have never seen the register pushing code show
up anywhere near the top in a profile. Nor should it.)
I'm sure that some of the platform-dependent code does push some extra registers.
But that's really an oversight, usually caused by lack of familiarity with the ABI.
And it's safe to push extra registers, but clearly unsafe to accidentally omit some.
Hans
> -----Original Message-----
> From: gc-bounces@...
> [mailto:gc-bounces@...]On Behalf Of vasantha selvi
> Sent: Monday, March 01, 2004 5:55 AM
> To: gc@...
> Subject: [Gc] Regarding thread context.
>
>
> Hi Hans,
> Once I went through the win32_threads.c, in that
> GC_push_all_stacks() for ppc port I saw that registers which
(Continue reading)