Atomic::cmpxchg_ptr code duplication
Keith.McGuigan at Sun.COM
Thu Apr 2 14:14:55 PDT 2009
Christian Thalinger wrote:
> On Thu, 2009-04-02 at 13:54 -0700, John Coomes wrote:
>> Paul Hohensee (Paul.Hohensee at Sun.COM) wrote:
>>> Sometimes compilers don't inline all the way through a call stack,
>>> i.e., they may have limits on inlining depth. It's not a matter for
>>> the preprocessor, since we're talking methods, not macros.
>>> Assembly code template are things like gcc asm statements or
>>> .il functions. Doesn't matter which. What matters is whether the
>>> compiler actually inlines the asm code where you want it.
>> That's the kind of thing I was actually wondering about, along with
>> portability--consolidating them only works if sizeof(void*) ==
>> sizeof(intptr_t) on every platform. They're the same on the platforms
>> SE supports, but maybe there are some oddball embedded platforms
> The only one I can think of is s390, which has 31-bit addresses.
> -- Christian
Does making this change use the assumption that
sizeof(intptr_t) == sizeof(void*) all the time? If so, can you make
sure there's an assertion in there somewhere (with verbose comments) so
if we ever run across a platform where this is not true, it will be
obvious what needs to be fixed?
(if not, sorry to interrupt)
More information about the hotspot-dev