Atomic::cmpxchg_ptr code duplication

Keith McGuigan 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
>> around.
> 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)

- Keith

More information about the hotspot-dev mailing list