summaryrefslogtreecommitdiff
path: root/libguile/lightening
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2019-05-22 23:05:06 +0200
committerAndy Wingo <wingo@pobox.com>2019-05-22 23:05:06 +0200
commitbe8ac3589e2a420fa927a3bf429e7a1e91590e64 (patch)
treed1dd82b44a3731638b60d047477e4f8e441b6525 /libguile/lightening
parent5c700ae832a01edffbb7d324f969c0cd9b9eba0e (diff)
parentff6ab1d2b140fb6a4dc74629e322a13ba6cd4ae4 (diff)
downloadguile-be8ac3589e2a420fa927a3bf429e7a1e91590e64.tar.gz
Merge remote-tracking branch 'lightening/master'
Diffstat (limited to 'libguile/lightening')
-rw-r--r--libguile/lightening/lightening/aarch64-cpu.c86
-rw-r--r--libguile/lightening/lightening/aarch64.c4
-rw-r--r--libguile/lightening/lightening/x86-sse.c3
3 files changed, 3 insertions, 90 deletions
diff --git a/libguile/lightening/lightening/aarch64-cpu.c b/libguile/lightening/lightening/aarch64-cpu.c
index 1e727008c..d24262012 100644
--- a/libguile/lightening/lightening/aarch64-cpu.c
+++ b/libguile/lightening/lightening/aarch64-cpu.c
@@ -162,30 +162,6 @@ oxxrs(jit_state_t *_jit, int32_t Op,
emit_u32_with_pool(_jit, inst);
}
-static void
-oxxxc(jit_state_t *_jit, int32_t Op,
- int32_t Rd, int32_t Rn, int32_t Rm, int32_t Cc)
-{
- uint32_t inst = Op;
- inst = write_Rd_bitfield(inst, Rd);
- inst = write_Rn_bitfield(inst, Rn);
- inst = write_Rm_bitfield(inst, Rm);
- inst = write_cond_bitfield(inst, Cc);
- emit_u32_with_pool(_jit, inst);
-}
-
-static void
-oxxx7(jit_state_t *_jit, int32_t Op,
- int32_t Rt, int32_t Rt2, int32_t Rn, int32_t Simm7)
-{
- uint32_t inst = Op;
- inst = write_Rt_bitfield(inst, Rt);
- inst = write_Rt2_bitfield(inst, Rt2);
- inst = write_Rn_bitfield(inst, Rn);
- inst = write_simm7_bitfield(inst, Simm7);
- emit_u32_with_pool(_jit, inst);
-}
-
#define XZR_REGNO 0x1f
#define WZR_REGNO XZR_REGNO
#define LSL_12 0x00400000
@@ -236,7 +212,6 @@ oxxx7(jit_state_t *_jit, int32_t Op,
#define A64_CBZ 0x34000000
#define A64_CBNZ 0x35000000
#define A64_B_C 0x54000000
-#define A64_CSINC 0x1a800400
#define A64_REV 0xdac00c00
#define A64_UDIV 0x1ac00800
#define A64_SDIV 0x1ac00c00
@@ -244,9 +219,7 @@ oxxx7(jit_state_t *_jit, int32_t Op,
#define A64_LSR 0x1ac02400
#define A64_ASR 0x1ac02800
#define A64_MUL 0x1b007c00
-#define A64_SMULL 0x9b207c00
#define A64_SMULH 0x9b407c00
-#define A64_UMULL 0x9ba07c00
#define A64_UMULH 0x9bc07c00
#define A64_STRBI 0x39000000
#define A64_LDRBI 0x39400000
@@ -282,11 +255,6 @@ oxxx7(jit_state_t *_jit, int32_t Op,
#define A64_STURW 0xb8000000
#define A64_LDURW 0xb8400000
#define A64_LDURSW 0xb8800000
-#define A64_STP_POS 0x29800000
-#define A64_LDP_POS 0x28c00000
-#define A64_STP_PRE 0x29800000
-#define A64_STR_PRE 0xf8000c00
-#define A64_LDR_POS 0xf8400c00
#define A64_ANDI 0x12400000
#define A64_ORRI 0x32400000
#define A64_EORI 0x52400000
@@ -351,12 +319,6 @@ CMNI_12(jit_state_t *_jit, int32_t Rn, int32_t Imm12)
}
static void
-CSINC(jit_state_t *_jit, int32_t Rd, int32_t Rn, int32_t Rm, int32_t Cc)
-{
- return oxxxc(_jit, A64_CSINC|XS,Rd,Rn,Rm,Cc);
-}
-
-static void
TST(jit_state_t *_jit, int32_t Rn, int32_t Rm)
{
return oxxx(_jit, A64_ANDS|XS,XZR_REGNO,Rn,Rm);
@@ -436,12 +398,6 @@ MOVZ_48(jit_state_t *_jit, int32_t Rd, int32_t Imm16)
}
static void
-MOVK(jit_state_t *_jit, int32_t Rd, int32_t Imm16)
-{
- return ox_h(_jit, A64_MOVK|XS,Rd,Imm16);
-}
-
-static void
MOVK_16(jit_state_t *_jit, int32_t Rd, int32_t Imm16)
{
return ox_h(_jit, A64_MOVK|XS|MOVI_LSL_16,Rd,Imm16);
@@ -478,12 +434,6 @@ ADDI_12(jit_state_t *_jit, int32_t Rd, int32_t Rn, int32_t Imm12)
}
static void
-MOV_XSP(jit_state_t *_jit, int32_t Rd, int32_t Rn)
-{
- return ADDI(_jit, Rd,Rn,0);
-}
-
-static void
ADDS(jit_state_t *_jit, int32_t Rd, int32_t Rn, int32_t Rm)
{
return oxxx(_jit, A64_ADDS|XS,Rd,Rn,Rm);
@@ -556,24 +506,12 @@ MUL(jit_state_t *_jit, int32_t Rd, int32_t Rn, int32_t Rm)
}
static void
-SMULL(jit_state_t *_jit, int32_t Rd, int32_t Rn, int32_t Rm)
-{
- return oxxx(_jit, A64_SMULL,Rd,Rn,Rm);
-}
-
-static void
SMULH(jit_state_t *_jit, int32_t Rd, int32_t Rn, int32_t Rm)
{
return oxxx(_jit, A64_SMULH,Rd,Rn,Rm);
}
static void
-UMULL(jit_state_t *_jit, int32_t Rd, int32_t Rn, int32_t Rm)
-{
- return oxxx(_jit, A64_UMULL,Rd,Rn,Rm);
-}
-
-static void
UMULH(jit_state_t *_jit, int32_t Rd, int32_t Rn, int32_t Rm)
{
return oxxx(_jit, A64_UMULH,Rd,Rn,Rm);
@@ -906,30 +844,6 @@ STUR(jit_state_t *_jit, int32_t Rt, int32_t Rn, int32_t Imm9)
return oxx9(_jit, A64_STUR,Rt,Rn,Imm9);
}
-static void
-STR_PRE(jit_state_t *_jit, int32_t Rt, int32_t Rn, int32_t Simm9)
-{
- return oxx9(_jit, A64_STR_PRE,Rt,Rn,Simm9);
-}
-
-static void
-LDR_POS(jit_state_t *_jit, int32_t Rt, int32_t Rn, int32_t Simm9)
-{
- return oxx9(_jit, A64_LDR_POS,Rt,Rn,Simm9);
-}
-
-static void
-STP_PRE(jit_state_t *_jit, int32_t Rt, int32_t Rt2, int32_t Rn, int32_t Simm7)
-{
- return oxxx7(_jit, A64_STP_PRE|XS,Rt,Rt2,Rn,Simm7);
-}
-
-static void
-LDP_POS(jit_state_t *_jit, int32_t Rt, int32_t Rt2, int32_t Rn, int32_t Simm7)
-{
- return oxxx7(_jit, A64_LDP_POS|XS,Rt,Rt2,Rn,Simm7);
-}
-
static jit_reloc_t
B(jit_state_t *_jit)
{
diff --git a/libguile/lightening/lightening/aarch64.c b/libguile/lightening/lightening/aarch64.c
index d5994d9dc..2e525166c 100644
--- a/libguile/lightening/lightening/aarch64.c
+++ b/libguile/lightening/lightening/aarch64.c
@@ -74,11 +74,7 @@ write_signed_bitfield(uint32_t word, ptrdiff_t val, uint8_t width, uint8_t shift
DEFINE_ENCODER(Rd, 5, 0, unsigned, uint32_t)
DEFINE_ENCODER(Rm, 5, 16, unsigned, uint32_t)
DEFINE_ENCODER(Rn, 5, 5, unsigned, uint32_t)
-DEFINE_ENCODER(Rt, 5, 0, unsigned, uint32_t)
-DEFINE_ENCODER(Rt2, 5, 10, unsigned, uint32_t)
-DEFINE_ENCODER(cond, 4, 12, unsigned, uint32_t)
DEFINE_ENCODER(cond2, 4, 0, unsigned, uint32_t)
-DEFINE_ENCODER(simm7, 7, 15, signed, ptrdiff_t)
DEFINE_ENCODER(simm9, 9, 12, signed, ptrdiff_t)
DEFINE_ENCODER(imm12, 12, 10, unsigned, uint32_t)
DEFINE_ENCODER(imm16, 16, 5, unsigned, uint32_t)
diff --git a/libguile/lightening/lightening/x86-sse.c b/libguile/lightening/lightening/x86-sse.c
index 15db27bca..ab66dc7c5 100644
--- a/libguile/lightening/lightening/x86-sse.c
+++ b/libguile/lightening/lightening/x86-sse.c
@@ -128,6 +128,8 @@ movdlxr(jit_state_t *_jit, int32_t r0, int32_t r1)
{
ssexr(_jit, 0x66, X86_SSE_X2G, r0, r1);
}
+
+static void movdqxr(jit_state_t *_jit, int32_t r0, int32_t r1) maybe_unused;
static void
movdqxr(jit_state_t *_jit, int32_t r0, int32_t r1)
{
@@ -282,6 +284,7 @@ xorpdr(jit_state_t *_jit, int32_t r0, int32_t r1)
{
ssexr(_jit, 0x66, X86_SSE_XOR, r0, r1);
}
+static void orpdr(jit_state_t *_jit, int32_t r0, int32_t r1) maybe_unused;
static void
orpdr(jit_state_t *_jit, int32_t r0, int32_t r1)
{