guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 391/437: aarch64: Correct va_list offsets and double loa


From: Andy Wingo
Subject: [Guile-commits] 391/437: aarch64: Correct va_list offsets and double load.
Date: Mon, 2 Jul 2018 05:15:02 -0400 (EDT)

wingo pushed a commit to branch lightning
in repository guile.

commit 316dfc6e5ee1a2468c99ff5c8890e932f6719c9b
Author: pcpa <address@hidden>
Date:   Sun May 24 14:34:16 2015 -0300

    aarch64: Correct va_list offsets and double load.
    
        * lib/jit_aarch64-fpu.c, lib/jit_aarch64.c: Correct base
        aarch64 varargs code.
---
 ChangeLog             | 5 +++++
 lib/jit_aarch64-fpu.c | 2 +-
 lib/jit_aarch64.c     | 6 ++----
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a39ed03..ddb7b75 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2015-06-24 Paulo Andrade <address@hidden>
 
+       * lib/jit_aarch64-fpu.c, lib/jit_aarch64.c: Correct base
+       aarch64 varargs code.
+
+2015-06-24 Paulo Andrade <address@hidden>
+
        * check/lightning.c: Clearly run check if clang is the system
        compiler.
 
diff --git a/lib/jit_aarch64-fpu.c b/lib/jit_aarch64-fpu.c
index 1f13a14..ff6061a 100644
--- a/lib/jit_aarch64-fpu.c
+++ b/lib/jit_aarch64-fpu.c
@@ -900,7 +900,7 @@ _vaarg_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1)
     ldxi(rn(rg0), r1, offsetof(jit_va_list_t, stack));
 
     /* Load argument. */
-    ldr(r0, rn(rg0));
+    ldr_d(r0, rn(rg0));
 
     /* Update stack pointer. */
     addi(rn(rg0), rn(rg0), 8);
diff --git a/lib/jit_aarch64.c b/lib/jit_aarch64.c
index 89c3eda..0e1da00 100644
--- a/lib/jit_aarch64.c
+++ b/lib/jit_aarch64.c
@@ -27,9 +27,7 @@ typedef struct jit_qreg {
     jit_float64_t      h;
 } jit_qreg_t;
 
-#define va_gp_min_offset               -64
 #define va_gp_top_offset               offsetof(jit_va_list_t, q0)
-#define va_fp_min_offset               -128
 #define va_fp_top_offset               sizeof(jit_va_list_t)
 typedef struct jit_va_list {
     jit_pointer_t      stack;
@@ -340,13 +338,13 @@ _jit_ellipsis(jit_state_t *_jit)
        if (jit_arg_reg_p(_jitc->function->self.argi))
            _jitc->function->vagp = (8 - _jitc->function->self.argi) * -8;
        else
-           _jitc->function->vagp = va_gp_min_offset;
+           _jitc->function->vagp = 0;
 
        /* Initialize fp offset in save area. */
        if (jit_arg_f_reg_p(_jitc->function->self.argf))
            _jitc->function->vafp = (8 - _jitc->function->self.argf) * -16;
        else
-           _jitc->function->vafp = va_fp_min_offset;
+           _jitc->function->vafp = 0;
     }
 }
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]