This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]