This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Saving all register of Boehm's Stop-World of hypermodern i686, is it reliable?
- From: "J.C." <jc-nospam at jr-pizarro dot jazztel dot es>
- To: java at gcc dot gnu dot org
- Date: Sat, 10 Feb 2007 19:21:47 +0100
- Subject: Saving all register of Boehm's Stop-World of hypermodern i686, is it reliable?
In boehm-gc/pthread_stop_world.c from GCJ-4.3,
i don't see any specific information of a modern CPU like AMD Athlon64
AM2 or Intel Pentium-M CoreDuo.
( to see GC_with_callee_saves_pushed() )
In my opinion, the registers & flags that must to be saved are:
* GP registers & flags (like eax,ebx,..,ebp,esp)
* FP registers & flags (like ST(0),..,ST(7))
* MMX registers & flags (from MMX)
* XMM registers & flags (from SSE, SSE2, SSE3, SSE4, ..)
* 3DNow+ registers & flags (very specific from AMD)
* future registers & flags of extensions of new microprocessors.
If not all register of a hypermodern i686 is saved then it can
soft-crash the application with a certain probability, and it won't be
good for future searching of unknown bugs.
Too, if any SIMD register can't be used because of it (the application
or library doesn't support), then the GCC compiler doesn't should use
SIMD flags, but the GCC can do it.
Then, why are we infra-using the SIMD registers?