guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 71/437: add missing x86-64 memory operations


From: Andy Wingo
Subject: [Guile-commits] 71/437: add missing x86-64 memory operations
Date: Mon, 2 Jul 2018 05:13:48 -0400 (EDT)

wingo pushed a commit to branch lightning
in repository guile.

commit 90e08b1cda930e0582c2a076be4ac5ed49d80980
Author: Paolo Bonzini <address@hidden>
Date:   Wed Mar 19 09:36:47 2008 +0100

    add missing x86-64 memory operations
    
    2008-03-19  Paolo Bonzini  <address@hidden>
    
        * lightning/i386/core-i386.c: Remove jit_ldr_i, jit_ldxr_i.
        * lightning/i386/core-32.h: Add jit_ldr_i, jit_ldxr_i.
        * lightning/i386/core-64.h: Add jit_ld{r,xr,i,xi}_{ui,l,ul},
        jit_ldr_i, jit_ldxr_i, jit_str_l, jit_stxr_l.
---
 ChangeLog                  |  7 +++++++
 lightning/i386/core-32.h   |  3 +++
 lightning/i386/core-64.h   | 39 ++++++++++++++++++++++++---------------
 lightning/i386/core-i386.h |  3 ---
 4 files changed, 34 insertions(+), 18 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 84f86dc..165bc69 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2008-03-19  Paolo Bonzini  <address@hidden>
 
+       * lightning/i386/core-i386.c: Remove jit_ldr_i, jit_ldxr_i.
+       * lightning/i386/core-32.h: Add jit_ldr_i, jit_ldxr_i.
+       * lightning/i386/core-64.h: Add jit_ld{r,xr,i,xi}_{ui,l,ul};
+       move jit_ldr_i, jit_ldxr_i, jit_str_l, jit_stxr_l with others.
+
+2008-03-19  Paolo Bonzini  <address@hidden>
+
        * lightning/asm-common.h: Add _s32P.
 
 2008-03-19  Paolo Bonzini  <address@hidden>
diff --git a/lightning/i386/core-32.h b/lightning/i386/core-32.h
index 34c9117..eba34b9 100644
--- a/lightning/i386/core-32.h
+++ b/lightning/i386/core-32.h
@@ -145,6 +145,9 @@ struct jit_local_state {
 #define jit_ldi_i(d, is)                MOVLmr((is), 0,    0,    0,  (d))
 #define jit_ldxi_i(d, rs, is)           MOVLmr((is), (rs), 0,    0,  (d))
 
+#define jit_ldr_i(d, rs)                MOVLmr(0,    (rs), 0,    0,  (d))
+#define jit_ldxr_i(d, s1, s2)           MOVLmr(0,    (s1), (s2), 1,  (d))
+                                                           
 #define jit_sti_i(id, rs)               MOVLrm((rs), (id), 0,    0,    0)
 #define jit_stxi_i(id, rd, rs)          MOVLrm((rs), (id), (rd), 0,    0)
 
diff --git a/lightning/i386/core-64.h b/lightning/i386/core-64.h
index efd3ee8..08d686f 100644
--- a/lightning/i386/core-64.h
+++ b/lightning/i386/core-64.h
@@ -192,21 +192,6 @@ static int jit_arg_reg_order[] = { _EDI, _ESI, _EDX, _ECX 
};
 #define jit_patch_at(jump_pc,v) (_jitl.long_jumps ? 
jit_patch_long_at((jump_pc)-3, v) : jit_patch_short_at(jump_pc, v))
 #define jit_ret() ((_jitl.alloca_offset < 0 ? LEAVE_() : POPQr(_EBP)), 
POPQr(_R13), POPQr(_R12), POPQr(_EBX), RET_())
 
-#define _jit_ldi_l(d, is)              MOVQmr((is), 0,    0,    0,  (d))
-#define _jit_ldxi_l(d, rs, is)         MOVQmr((is), (rs), 0,    0,  (d))
-#define jit_ldr_l(d, rs)               MOVQmr(0,    (rs), 0,    0,  (d))
-#define jit_ldxr_l(d, s1, s2)          MOVQmr(0,    (s1), (s2), 1,  (d))
-
-#define _jit_sti_l(id, rs)             MOVQrm((rs), (id), 0,    0,    0)
-#define _jit_stxi_l(id, rd, rs)                MOVQrm((rs), (id), (rd), 0,    
0)
-#define jit_str_l(rd, rs)              MOVQrm((rs), 0,    (rd), 0,    0)
-#define jit_stxr_l(d1, d2, rs)         MOVQrm((rs), 0,    (d1), (d2), 1)
-
-#define jit_ldi_l(d, is)               (_u32P((long)(is)) ? _jit_ldi_l((d), 
(is)) : (jit_movi_l(JIT_REXTMP, (is)), jit_ldr_l((d), JIT_REXTMP)))
-#define jit_sti_l(id, rs)              (_u32P((long)(id)) ? _jit_sti_l((id), 
(rs)) : (jit_movi_l(JIT_REXTMP, (id)), jit_str_l (JIT_REXTMP, (rs))))
-#define jit_ldxi_l(d, rs, is)          (_u32P((long)(is)) ? _jit_ldxi_l((d), 
(rs), (is)) : (jit_movi_l(JIT_REXTMP, (is)), jit_ldxr_l((d), (rs), JIT_REXTMP)))
-#define jit_stxi_l(id, rd, rs)         (_u32P((long)(id)) ? _jit_stxi_l((id), 
(rd), (rs)) : (jit_movi_l(JIT_REXTMP, (id)), jit_stxr_l (JIT_REXTMP, (rd), 
(rs))))
-
 /* Memory */
 
 /* Used to implement ldc, stc, ... We have SIL and friends which simplify it 
all.  */
@@ -233,12 +218,36 @@ static int jit_arg_reg_order[] = { _EDI, _ESI, _EDX, _ECX 
};
 #define jit_sti_s(id, rs)               (_u32P((long)(id)) ? 
MOVWrm(jit_reg16(rs), (id), 0,    0,    0) : (jit_movi_l(JIT_REXTMP, id), 
jit_str_s(JIT_REXTMP, rs)))
 #define jit_stxi_s(id, rd, rs)          (_u32P((long)(id)) ? 
MOVWrm(jit_reg16(rs), (id), (rd), 0,    0) : (jit_movi_l(JIT_REXTMP, id), 
jit_stxr_s(JIT_REXTMP, rd, rs)))
 
+#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_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)) ? 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_ldr_ui(d, rs)               MOVLmr(0,    (rs), 0,    0,  (d))
+#define jit_ldxr_ui(d, s1, s2)          MOVLmr(0,    (s1), (s2), 1,  (d))
+
+#define jit_ldr_i(d, rs)                MOVSLQmr(0,    (rs), 0,    0,  (d))
+#define jit_ldxr_i(d, s1, s2)           MOVSLQmr(0,    (s1), (s2), 1,  (d))
+
+#define jit_ldr_l(d, rs)                MOVQmr(0,    (rs), 0,    0,  (d))
+#define jit_ldxr_l(d, s1, s2)           MOVQmr(0,    (s1), (s2), 1,  (d))
+
+#define jit_str_l(rd, rs)               MOVQrm((rs), 0,    (rd), 0,    0)
+#define jit_stxr_l(d1, d2, rs)          MOVQrm((rs), 0,    (d1), (d2), 1)
+
 #define jit_blti_l(label, rs, is)      jit_bra_l0((rs), (is), JLm(label), 
JSm(label) )
 #define jit_blei_l(label, rs, is)      jit_bra_l ((rs), (is), JLEm(label)      
            )
 #define jit_bgti_l(label, rs, is)      jit_bra_l ((rs), (is), JGm(label)       
            )
diff --git a/lightning/i386/core-i386.h b/lightning/i386/core-i386.h
index f8df54b..dec15fb 100644
--- a/lightning/i386/core-i386.h
+++ b/lightning/i386/core-i386.h
@@ -337,9 +337,6 @@
 #define jit_str_s(rd, rs)               MOVWrm(jit_reg16(rs), 0,    (rd), 0,   
 0)
 #define jit_stxr_s(d1, d2, rs)          MOVWrm(jit_reg16(rs), 0,    (d1), 
(d2), 1)
                                                            
-#define jit_ldr_i(d, rs)                MOVLmr(0,    (rs), 0,    0,  (d))
-#define jit_ldxr_i(d, s1, s2)           MOVLmr(0,    (s1), (s2), 1,  (d))
-                                                           
 #define jit_str_i(rd, rs)               MOVLrm((rs), 0,    (rd), 0,    0)
 #define jit_stxr_i(d1, d2, rs)          MOVLrm((rs), 0,    (d1), (d2), 1)
                                                            



reply via email to

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