On Wed, 2009-07-15 at 22:23 +0200, Tomek Grabiec wrote: > @@ -0,0 +1,31 @@ > +#ifndef __X86_CALL_H > +#define __X86_CALL_H > + > +#ifdef CONFIG_X86_32 > +/** > + * This calls a function (@target) with call arguments copied from > + * @args array. The array contains @args_count elements of machine > + * word size. The call result will be stored in @result. > + */ > +#define native_call(target, args, args_count, result) { > \ > + __asm__ volatile ( \ > + "movl %2, %%esi \n" \ > + "movl %1, %%ecx \n" \ > + "subl %%ecx, %%esp \n" \ > + "movl %%esp, %%edi \n" \ > + "cld \n" \ > + "rep movsb \n" \ > + "movl %%ecx, %%esi \n" \ > + "call *%3 \n" \ > + "addl %%esi, %%esp \n" \ > + "movl %%eax, %0 \n" \ > + : "=r" (result) \ > + : "r" (sizeof(long) * args_count), "r"(args), "m"(target) \ > + : "%ecx", "%esi", "%eax", "cc", "memory" \ > + ); \ > + } > +#else > + #error NOT IMPLEMENTED
It's probably good idea to always CC Eduard on these kinds of changes. > +#endif ------------------------------------------------------------------------------ Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge _______________________________________________ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel