mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-28 07:50:20 +02:00
fix several load/store patterns for x86-64.
2008-03-21 Paolo Bonzini <bonzini@gnu.org> * 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.
This commit is contained in:
parent
1014c9bb12
commit
4865ed3451
4 changed files with 23 additions and 17 deletions
|
@ -1,3 +1,11 @@
|
|||
2008-03-21 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
* 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 <bonzini@gnu.org>
|
||||
|
||||
* lightning/i386/core-64.h: Fix uses of jit_qop_.
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue