]> git.unchartedbackwaters.co.uk Git - francis/libjit.git/commitdiff
change jit_builtin_return_int to use leal instead of movl
authorAleksey Demakov <ademakov@gmail.com>
Sun, 8 Jan 2006 04:25:24 +0000 (04:25 +0000)
committerAleksey Demakov <ademakov@gmail.com>
Sun, 8 Jan 2006 04:25:24 +0000 (04:25 +0000)
ChangeLog
jit/jit-apply-x86.h

index 303219302d154fda63a24abb6e30a1a6b9027a80..01714b7938fefadac78b359896f65298d676f2f2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-01-08  Aleksey Demakov  <ademakov@gmail.com>
+
+       * jit/jit-apply-x86.h (jit_builtin_return_int): change definition
+       to dereference the return_buf argument and use leal instead of movl.
+       This fixes builds with gcc 4.0.2.
+
 2005-12-28  Aleksey Demakov  <ademakov@gmail.com>
 
        * jit/jit-rules-x86.sel: implement JIT_OP_MEMMOVE rule. Get rid of
index 76733636d7fa2cc26b231273b773d326843cde2f..4cc9234cb38eca68073e47c92ed71b713715ec1f 100644 (file)
 #define        jit_builtin_return_int(return_buf)      \
                do { \
                        __asm__ ( \
-                               "movl %0, %%ecx\n\t" \
+                               "leal %0, %%ecx\n\t" \
                                "movl (%%ecx), %%eax\n\t" \
                                "movl 4(%%ecx), %%edx\n\t" \
-                               : : "m"((return_buf)) \
+                               : : "m"(*(return_buf)) \
                                : "eax", "ecx", "edx" \
                        ); \
                        return; \
 #define        jit_builtin_return_int(return_buf)      \
                do { \
                        __asm__ ( \
-                               "movl %0, %%ecx\n\t" \
+                               "leal %0, %%ecx\n\t" \
                                "movl (%%ecx), %%eax\n\t" \
                                "movl 4(%%ecx), %%edx\n\t" \
-                               : : "m"((return_buf)) \
+                               : : "m"(*(return_buf)) \
                                : "eax", "ecx", "edx" \
                        ); \
                        return; \