guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 76/437: fix several load/store patterns for x86-64.


From: Andy Wingo
Subject: [Guile-commits] 76/437: fix several load/store patterns for x86-64.
Date: Mon, 2 Jul 2018 05:13:49 -0400 (EDT)

wingo pushed a commit to branch lightning
in repository guile.

commit 4865ed345147ba132eaa617cd379215d31ec65de
Author: Paolo Bonzini <address@hidden>
Date:   Fri Mar 21 09:08:38 2008 +0100

    fix several load/store patterns for x86-64.
    
    2008-03-21  Paolo Bonzini  <address@hidden>
    
        * lightning/i386/core-64.h: Fix jit_{ld,st}{,x}i_{i,l}.
        Remove jit_ld{,x}i_ul.
        * lightning/core-common.h: Make jit_ld{,x}{i,r}_ul
        always a synonym of the _l variant.
        * doc/porting.texi: Document this.
---
 ChangeLog                |  8 ++++++++
 doc/porting.texi         |  8 ++++----
 lightning/core-common.h  |  9 +++++----
 lightning/i386/core-64.h | 15 ++++++---------
 4 files changed, 23 insertions(+), 17 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 2b0974a..978d8ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-03-21  Paolo Bonzini  <address@hidden>
+
+       * lightning/i386/core-64.h: Fix jit_{ld,st}{,x}i_{i,l}.
+       Remove jit_ld{,x}i_ul.
+       * lightning/core-common.h: Make jit_ld{,x}{i,r}_ul
+       always a synonym of the _l variant.
+       * doc/porting.texi: Document this.
+
 2008-03-19  Paolo Bonzini  <address@hidden>
 
        * lightning/i386/core-64.h: Fix uses of jit_qop_.
diff --git a/doc/porting.texi b/doc/porting.texi
index 1cc2a11..826cc98 100644
--- a/doc/porting.texi
+++ b/doc/porting.texi
@@ -1126,11 +1126,9 @@ operations:
 #define jit_ldr_s(d, rs)
 #define jit_ldi_uc(d, is)
 #define jit_ldi_ui(d, is)
-#define jit_ldi_ul(d, is)
 #define jit_ldi_us(d, is)
 #define jit_ldr_uc(d, rs)
 #define jit_ldr_ui(d, rs)
-#define jit_ldr_ul(d, rs)
 #define jit_ldr_us(d, rs)
 #define jit_sti_c(id, rs)
 #define jit_sti_i(id, rs)
@@ -1213,9 +1211,13 @@ operations:
 #define jit_gti_p(d, rs, is)
 #define jit_gtr_p(d, s1, s2)
 #define jit_ldr_p(d, rs)
+#define jit_ldr_ul(d, rs)
 #define jit_ldi_p(d, is)
+#define jit_ldi_ul(d, is)
 #define jit_ldxi_p(d, rs, is)
+#define jit_ldxi_ul(d, rs, is)
 #define jit_ldxr_p(d, s1, s2)
+#define jit_ldxr_ul(d, s1, s2)
 #define jit_lei_p(d, rs, is)
 #define jit_ler_p(d, s1, s2)
 #define jit_lshi_ui(d, rs, is)
@@ -1446,10 +1448,8 @@ operations:
 #define jit_ldr_ui(d, rs)
 #define jit_ldxi_l(d, rs, is)
 #define jit_ldxi_ui(d, rs, is)
-#define jit_ldxi_ul(d, rs, is)
 #define jit_ldxr_l(d, s1, s2)
 #define jit_ldxr_ui(d, s1, s2)
-#define jit_ldxr_ul(d, s1, s2)
 #define jit_lei_l(d, rs, is)
 #define jit_lei_ul(d, rs, is)
 #define jit_ler_l(d, s1, s2)
diff --git a/lightning/core-common.h b/lightning/core-common.h
index 0d61e20..c9efa9d 100644
--- a/lightning/core-common.h
+++ b/lightning/core-common.h
@@ -365,6 +365,11 @@ typedef union jit_code {
 #define jit_ldxr_p(rd, s1, s2)         jit_ldxr_l((rd), (s1), (s2))
 #define jit_ldxi_p(rd, rs, is)         jit_ldxi_l((rd), (rs), (is))
 
+#define jit_ldr_ul(d, rs)              jit_ldr_l((d), (rs))
+#define jit_ldi_ul(d, is)              jit_ldi_l((d), (is))
+#define jit_ldxr_ul(d, s1, s2)         jit_ldxr_l((d), (s1), (s2))
+#define jit_ldxi_ul(d, rs, is)         jit_ldxi_l((d), (rs), (is))
+
 
 /* Boolean & branch synonyms */
 #define jit_eqr_ui(d, s1, s2)          jit_eqr_i((d), (s1), (s2))
@@ -554,8 +559,6 @@ typedef union jit_code {
 #define jit_sti_l(d, is)               jit_sti_i((d), (is))
 #define jit_ldr_ui(d, rs)              jit_ldr_i((d), (rs))
 #define jit_ldi_ui(d, is)              jit_ldi_i((d), (is))
-#define jit_ldr_ul(d, rs)              jit_ldr_ui((d), (rs))
-#define jit_ldi_ul(d, is)              jit_ldi_ui((d), (is))
 #endif
 
 #define jit_ldxr_l(d, s1, s2)          jit_ldxr_i((d), (s1), (s2))
@@ -564,8 +567,6 @@ typedef union jit_code {
 #define jit_stxi_l(d, rs, is)          jit_stxi_i((d), (rs), (is))
 #define jit_ldxr_ui(d, s1, s2)         jit_ldxr_i((d), (s1), (s2))
 #define jit_ldxi_ui(d, rs, is)         jit_ldxi_i((d), (rs), (is))
-#define jit_ldxr_ul(d, s1, s2)         jit_ldxr_ui((d), (s1), (s2))
-#define jit_ldxi_ul(d, rs, is)         jit_ldxi_ui((d), (rs), (is))
 
 
 /* Boolean */
diff --git a/lightning/i386/core-64.h b/lightning/i386/core-64.h
index a3e34fd..0c8808c 100644
--- a/lightning/i386/core-64.h
+++ b/lightning/i386/core-64.h
@@ -221,20 +221,17 @@ static int jit_arg_reg_order[] = { _EDI, _ESI, _EDX, _ECX 
};
 #define jit_ldi_ui(d, is)               (_u32P((long)(is)) ? MOVLmr((is), 0,   
 0,    0,  (d)) :  (jit_movi_l(JIT_REXTMP, is), jit_ldr_ui(d, JIT_REXTMP)))
 #define jit_ldxi_ui(d, rs, is)          (_u32P((long)(is)) ? MOVLmr((is), 
(rs), 0,    0,  (d)) :  (jit_movi_l(JIT_REXTMP, is), jit_ldxr_ui(d, rs, 
JIT_REXTMP)))
 
-#define jit_ldi_i(d, is)                (_u32P((long)(is)) ? MOVLmr((is), 0,   
 0,    0,  (d)) :  (jit_movi_l(JIT_REXTMP, is), jit_ldr_i(d, JIT_REXTMP)))
-#define jit_ldxi_i(d, rs, is)           (_u32P((long)(is)) ? MOVLmr((is), 
(rs), 0,    0,  (d)) :  (jit_movi_l(JIT_REXTMP, is), jit_ldxr_i(d, rs, 
JIT_REXTMP)))
+#define jit_ldi_i(d, is)                (_u32P((long)(is)) ? MOVSLQmr((is), 0, 
   0,    0,  (d)) :  (jit_movi_l(JIT_REXTMP, is), jit_ldr_i(d, JIT_REXTMP)))
+#define jit_ldxi_i(d, rs, is)           (_u32P((long)(is)) ? MOVSLQmr((is), 
(rs), 0,    0,  (d)) :  (jit_movi_l(JIT_REXTMP, is), jit_ldxr_i(d, rs, 
JIT_REXTMP)))
 
 #define jit_sti_i(id, rs)               (_u32P((long)(id)) ? MOVLrm((rs), 
(id), 0,    0,    0) : (jit_movi_l(JIT_REXTMP, id), jit_str_i(JIT_REXTMP, rs)))
 #define jit_stxi_i(id, rd, rs)          (_u32P((long)(id)) ? MOVLrm((rs), 
(id), (rd), 0,    0) : (jit_movi_l(JIT_REXTMP, id), jit_stxr_i(JIT_REXTMP, rd, 
rs)))
 
-#define jit_ldi_ul(d, is)               (_u32P((long)(is)) ? MOVLmr((is), 0,   
 0,    0,  (d)) :  (jit_movi_l(JIT_REXTMP, is), jit_ldr_ul(d, JIT_REXTMP)))
-#define jit_ldxi_ul(d, rs, is)          (_u32P((long)(is)) ? MOVLmr((is), 
(rs), 0,    0,  (d)) :  (jit_movi_l(JIT_REXTMP, is), jit_ldxr_ul(d, rs, 
JIT_REXTMP)))
+#define jit_ldi_l(d, is)                (_u32P((long)(is)) ? MOVQmr((is), 0,   
 0,    0,  (d)) :  (jit_movi_l(JIT_REXTMP, is), jit_ldr_l(d, JIT_REXTMP)))
+#define jit_ldxi_l(d, rs, is)           (_u32P((long)(is)) ? MOVQmr((is), 
(rs), 0,    0,  (d)) :  (jit_movi_l(JIT_REXTMP, is), jit_ldxr_l(d, rs, 
JIT_REXTMP)))
 
-#define jit_ldi_l(d, is)                (_u32P((long)(is)) ? MOVLmr((is), 0,   
 0,    0,  (d)) :  (jit_movi_l(JIT_REXTMP, is), jit_ldr_l(d, JIT_REXTMP)))
-#define jit_ldxi_l(d, rs, is)           (_u32P((long)(is)) ? MOVLmr((is), 
(rs), 0,    0,  (d)) :  (jit_movi_l(JIT_REXTMP, is), jit_ldxr_l(d, rs, 
JIT_REXTMP)))
-
-#define jit_sti_l(id, rs)               (_u32P((long)(id)) ? MOVLrm((rs), 
(id), 0,    0,    0) : (jit_movi_l(JIT_REXTMP, id), jit_str_l(JIT_REXTMP, rs)))
-#define jit_stxi_l(id, rd, rs)          (_u32P((long)(id)) ? MOVLrm((rs), 
(id), (rd), 0,    0) : (jit_movi_l(JIT_REXTMP, id), jit_stxr_l(JIT_REXTMP, rd, 
rs)))
+#define jit_sti_l(id, rs)               (_u32P((long)(id)) ? MOVQrm((rs), 
(id), 0,    0,    0) : (jit_movi_l(JIT_REXTMP, id), jit_str_l(JIT_REXTMP, rs)))
+#define jit_stxi_l(id, rd, rs)          (_u32P((long)(id)) ? MOVQrm((rs), 
(id), (rd), 0,    0) : (jit_movi_l(JIT_REXTMP, id), jit_stxr_l(JIT_REXTMP, rd, 
rs)))
 
 #define jit_ldr_ui(d, rs)               MOVLmr(0,    (rs), 0,    0,  (d))
 #define jit_ldxr_ui(d, s1, s2)          MOVLmr(0,    (s1), (s2), 1,  (d))



reply via email to

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