As we are doing a "call", we must specify all caller-saved registers as
clobbered.

Cc: Eduard - Gabriel Munteanu <eduard.munte...@linux360.ro>
Cc: Arthur HUILLET <arthur.huil...@free.fr>
Signed-off-by: Pekka Enberg <penb...@cs.helsinki.fi>
---
 arch/x86/call.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/x86/call.c b/arch/x86/call.c
index bce0a81..424b093 100644
--- a/arch/x86/call.c
+++ b/arch/x86/call.c
@@ -211,6 +211,7 @@ static unsigned long native_call_gp(struct vm_method 
*method,
 
        __asm__ volatile (
                /* Copy stack arguments onto the stack. */
+               "movq %2, %%rsi \n"
                "movq %%rbx, %%rcx \n"
                "shl $3, %%rbx \n"
                "subq %%rbx, %%rsp \n"
@@ -229,9 +230,9 @@ static unsigned long native_call_gp(struct vm_method 
*method,
                "call *%3 \n"
                "addq %%rbx, %%rsp \n"
                : "=a" (result)
-               : "b" (get_stack_args_count(method)), "S" (stack),
+               : "b" (get_stack_args_count(method)), "r" (stack),
                  "m" (target), "a" (regs)
-               : "%rcx", "%rdi", "%r8", "%r9", "cc"
+               : "rdi", "rsi", "rdx", "rcx", "r8", "r9", "r10", "r11", "cc"
        );
 
        free(stack);
-- 
1.6.3.3


------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
_______________________________________________
Jatovm-devel mailing list
Jatovm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jatovm-devel

Reply via email to