The segfault I was debugging the other day turned out a stack overflow caused by the Unimplemented() in Atomic::cmpxchg_ptr (void *, void *, void *) calling itself to generate the error message for the Unimplemented() in Atomic::xchg (jint, jint *). I guess this means it’s time to start writing assembler.

I had a little tangent yesterday while I tried to figure out what sizes all the different types were. aph and mjw pointed me at some stuff [1, 2 and 3]. Who knew?

  ILP32 LP64
int 32 32
long 32 64
void * 32 64
jint 32 32
jlong 64 64
intptr_t 32 64

I fixed the build on ppc64 while I was experimenting too.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.