mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-03 13:20:26 +02:00
use CVTT instruction, fix lightning/Makefile.am
2006-12-02 Paolo Bonzini <bonzini@gnu.org> * lightning/i386/asm-i386.h: Add CVTTS?2SIL. * lightning/i386/asm-64.h: Add CVTTS?2SIQ. * lightning/i386/fp-64.h: Use it. * lightning/Makefile.am: Place files in nodist_lightning_HEADERS. git-archimport-id: bonzini@gnu.org--2004b/lightning--stable--1.2--patch-52
This commit is contained in:
parent
36a3ae9058
commit
19f163bcaf
5 changed files with 46 additions and 19 deletions
|
@ -1,3 +1,11 @@
|
|||
2006-12-02 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
* lightning/i386/asm-i386.h: Add CVTTS?2SIL.
|
||||
* lightning/i386/asm-64.h: Add CVTTS?2SIQ.
|
||||
* lightning/i386/fp-64.h: Use it.
|
||||
|
||||
* lightning/Makefile.am: Place files in nodist_lightning_HEADERS.
|
||||
|
||||
2006-11-23 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
* lightning/core-common.h: Add casts in "*i_p" variants.
|
||||
|
|
|
@ -10,14 +10,14 @@ EXTRA_DIST = i386/Makefile.frag \
|
|||
|
||||
@lightning_frag@
|
||||
|
||||
LIGHTNING_FILES = funcs-common.h core-common.h fp-common.h asm-common.h \
|
||||
asm.h core.h funcs.h fp.h $(LIGHTNING_TARGET_FILES)
|
||||
LIGHTNING_COMMON_FILES = funcs-common.h core-common.h fp-common.h asm-common.h
|
||||
|
||||
if LIGHTNING_MAIN
|
||||
|
||||
lightningdir = $(includedir)/lightning
|
||||
dist_pkgdata_DATA = Makefile.am
|
||||
dist_lightning_HEADERS = $(LIGHTNING_FILES)
|
||||
dist_lightning_HEADERS = $(LIGHTNING_COMMON_FILES)
|
||||
nodist_lightning_HEADERS = asm.h core.h funcs.h fp.h $(LIGHTNING_TARGET_FILES)
|
||||
|
||||
else
|
||||
all-am:
|
||||
|
|
|
@ -349,6 +349,11 @@
|
|||
#define _SSEQrm(PX,OP,RS,RSA,MD,MB,MI,MS) (_jit_B(PX), __SSEQrm(OP, RS, RSA, MD, MB, MI, MS))
|
||||
#define _SSEQ1rm(PX,OP,RS,RSA,MD,MB,MI,MS) (_jit_B(PX), __SSEQ1rm(OP, RS, RSA, MD, MB, MI, MS))
|
||||
|
||||
#define CVTTSS2SIQrr(RS, RD) _SSEQrr(0xf3, X86_SSE_CVTTSI, RS,_rX, RD,_r8)
|
||||
#define CVTTSS2SIQmr(MD, MB, MI, MS, RD) _SSEQmr(0xf3, X86_SSE_CVTTSI, MD, MB, MI, MS, RD,_r8)
|
||||
#define CVTTSD2SIQrr(RS, RD) _SSEQrr(0xf2, X86_SSE_CVTTSI, RS,_rX, RD,_r8)
|
||||
#define CVTTSD2SIQmr(MD, MB, MI, MS, RD) _SSEQmr(0xf2, X86_SSE_CVTTSI, MD, MB, MI, MS, RD,_r8)
|
||||
|
||||
#define CVTSS2SIQrr(RS, RD) _SSEQrr(0xf3, X86_SSE_CVTSI, RS,_rX, RD,_r8)
|
||||
#define CVTSS2SIQmr(MD, MB, MI, MS, RD) _SSEQmr(0xf3, X86_SSE_CVTSI, MD, MB, MI, MS, RD,_r8)
|
||||
#define CVTSD2SIQrr(RS, RD) _SSEQrr(0xf2, X86_SSE_CVTSI, RS,_rX, RD,_r8)
|
||||
|
|
|
@ -1311,6 +1311,7 @@ enum {
|
|||
X86_SSE_MOVHP = 0x16,
|
||||
X86_SSE_MOVA = 0x28,
|
||||
X86_SSE_CVTIS = 0x2a,
|
||||
X86_SSE_CVTTSI = 0x2c,
|
||||
X86_SSE_CVTSI = 0x2d,
|
||||
X86_SSE_UCOMI = 0x2e,
|
||||
X86_SSE_COMI = 0x2f,
|
||||
|
@ -1532,6 +1533,11 @@ enum {
|
|||
#define CVTSD2SSrr(RS, RD) _SSELrr(0xf2, X86_SSE_CVTSD, RS,_rX, RD,_rX)
|
||||
#define CVTSD2SSmr(MD, MB, MI, MS, RD) _SSELmr(0xf2, X86_SSE_CVTSD, MD, MB, MI, MS, RD,_rX)
|
||||
|
||||
#define CVTTSS2SILrr(RS, RD) _SSELrr(0xf3, X86_SSE_CVTTSI, RS,_rX, RD,_r4)
|
||||
#define CVTTSS2SILmr(MD, MB, MI, MS, RD) _SSELmr(0xf3, X86_SSE_CVTTSI, MD, MB, MI, MS, RD,_r4)
|
||||
#define CVTTSD2SILrr(RS, RD) _SSELrr(0xf2, X86_SSE_CVTTSI, RS,_rX, RD,_r4)
|
||||
#define CVTTSD2SILmr(MD, MB, MI, MS, RD) _SSELmr(0xf2, X86_SSE_CVTTSI, MD, MB, MI, MS, RD,_r4)
|
||||
|
||||
#define CVTSS2SILrr(RS, RD) _SSELrr(0xf3, X86_SSE_CVTSI, RS,_rX, RD,_r4)
|
||||
#define CVTSS2SILmr(MD, MB, MI, MS, RD) _SSELmr(0xf3, X86_SSE_CVTSI, MD, MB, MI, MS, RD,_r4)
|
||||
#define CVTSD2SILrr(RS, RD) _SSELrr(0xf2, X86_SSE_CVTSI, RS,_rX, RD,_r4)
|
||||
|
|
|
@ -167,6 +167,10 @@ union jit_double_imm {
|
|||
#define jit_roundr_f_i(rd, rs) CVTSS2SILrr((rs), (rd))
|
||||
#define jit_roundr_d_l(rd, rs) CVTSD2SIQrr((rs), (rd))
|
||||
#define jit_roundr_f_l(rd, rs) CVTSS2SIQrr((rs), (rd))
|
||||
#define jit_truncr_d_i(rd, rs) CVTTSD2SILrr((rs), (rd))
|
||||
#define jit_truncr_f_i(rd, rs) CVTTSS2SILrr((rs), (rd))
|
||||
#define jit_truncr_d_l(rd, rs) CVTTSD2SIQrr((rs), (rd))
|
||||
#define jit_truncr_f_l(rd, rs) CVTTSS2SIQrr((rs), (rd))
|
||||
|
||||
|
||||
#define jit_ceilr_f_i(rd, rs) do { \
|
||||
|
@ -183,26 +187,16 @@ union jit_double_imm {
|
|||
ADCLir (0, (rd)); \
|
||||
} while (0)
|
||||
|
||||
#define jit_truncr_f_i(rd, rs) do { \
|
||||
jit_roundr_f_i ((rd), (rs)); \
|
||||
jit_extr_i_f (JIT_FPTMP, (rd)); \
|
||||
TESTLrr ((rd), (rd)); \
|
||||
JSm (_jit.x.pc + 9); \
|
||||
UCOMISSrr (JIT_FPTMP, (rs)); \
|
||||
SBBLir (0, (rd)); \
|
||||
JMPSm (_jit.x.pc + 7); \
|
||||
#define jit_ceilr_f_l(rd, rs) do { \
|
||||
jit_roundr_f_l ((rd), (rs)); \
|
||||
jit_extr_l_f (JIT_FPTMP, (rd)); \
|
||||
UCOMISSrr ((rs), JIT_FPTMP); \
|
||||
ADCLir (0, (rd)); \
|
||||
} while (0)
|
||||
|
||||
#define jit_truncr_d_i(rd, rs) do { \
|
||||
jit_roundr_d_i ((rd), (rs)); \
|
||||
jit_extr_i_d (JIT_FPTMP, (rd)); \
|
||||
TESTLrr ((rd), (rd)); \
|
||||
JSm (_jit.x.pc + 9); \
|
||||
UCOMISDrr (JIT_FPTMP, (rs)); \
|
||||
SBBLir (0, (rd)); \
|
||||
JMPSm (_jit.x.pc + 7); \
|
||||
#define jit_ceilr_d_l(rd, rs) do { \
|
||||
jit_roundr_d_l ((rd), (rs)); \
|
||||
jit_extr_l_d (JIT_FPTMP, (rd)); \
|
||||
UCOMISDrr ((rs), JIT_FPTMP); \
|
||||
ADCLir (0, (rd)); \
|
||||
} while (0)
|
||||
|
@ -221,6 +215,20 @@ union jit_double_imm {
|
|||
SBBLir (0, (rd)); \
|
||||
} while (0)
|
||||
|
||||
#define jit_floorr_f_l(rd, rs) do { \
|
||||
jit_roundr_f_l ((rd), (rs)); \
|
||||
jit_extr_l_f (JIT_FPTMP, (rd)); \
|
||||
UCOMISSrr (JIT_FPTMP, (rs)); \
|
||||
SBBLir (0, (rd)); \
|
||||
} while (0)
|
||||
|
||||
#define jit_floorr_d_l(rd, rs) do { \
|
||||
jit_roundr_d_l ((rd), (rs)); \
|
||||
jit_extr_l_d (JIT_FPTMP, (rd)); \
|
||||
UCOMISDrr (JIT_FPTMP, (rs)); \
|
||||
SBBLir (0, (rd)); \
|
||||
} while (0)
|
||||
|
||||
#define jit_bltr_f(d, s1, s2) (UCOMISSrr ((s1), (s2)), JAm ((d)))
|
||||
#define jit_bler_f(d, s1, s2) (UCOMISSrr ((s1), (s2)), JAEm ((d)))
|
||||
#define jit_beqr_f(d, s1, s2) (UCOMISSrr ((s1), (s2)), _OO (0x7a06), JEm ((d)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue