mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 03:30:27 +02:00
Merge remote-tracking branch 'lightening/master'
This commit is contained in:
commit
be8ac3589e
3 changed files with 3 additions and 90 deletions
|
@ -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
|
||||
|
@ -350,12 +318,6 @@ CMNI_12(jit_state_t *_jit, int32_t Rn, int32_t Imm12)
|
|||
return oxxi(_jit, A64_ADDSI|XS|LSL_12,XZR_REGNO,Rn,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)
|
||||
{
|
||||
|
@ -435,12 +397,6 @@ MOVZ_48(jit_state_t *_jit, int32_t Rd, int32_t Imm16)
|
|||
return ox_h(_jit, A64_MOVZ|XS|MOVI_LSL_48,Rd,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)
|
||||
{
|
||||
|
@ -477,12 +433,6 @@ ADDI_12(jit_state_t *_jit, int32_t Rd, int32_t Rn, int32_t Imm12)
|
|||
return oxxi(_jit, A64_ADDI|XS|LSL_12,Rd,Rn,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)
|
||||
{
|
||||
|
@ -555,24 +505,12 @@ MUL(jit_state_t *_jit, int32_t Rd, int32_t Rn, int32_t Rm)
|
|||
return oxxx(_jit, A64_MUL|XS,Rd,Rn,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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue