Hi guys,

I am working on passing register values to gc_safepoint(). I fixed up
gc_alloc() with this simple function that does pusha and copies the
values:

static inline void save_registers(struct register_values *regs)
{
       void *esp;

       __asm__ volatile (
               "pusha\n\t"
               "movl %%esp, %0\n\t"
               : "=r"(esp)
       );

       memcpy(regs, esp, sizeof *regs);

       __asm__ volatile ("popa");
}

However, the part I thought would be simple is turning out to be hard.
Whenever we enter a safepoint from the signal handler, we lose
uc->uc_mcontext.gregs because of the "bottom half" infrastructure there.

Any suggestions how to deal with this?

                        Pekka


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Jatovm-devel mailing list
Jatovm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jatovm-devel

Reply via email to