LMMS
Loading...
Searching...
No Matches
glue_x86_64_sse.h File Reference

Go to the source code of this file.

Macros

#define GLUE_PREFER_NONFP_DV_ASSIGNS
#define GLUE_HAS_FPREG2   1
#define GLUE_MAX_SPILL_REGS   4
#define GLUE_SAVE_TO_SPILL_SIZE(x)
#define GLUE_RESTORE_SPILL_TO_FPREG2_SIZE(x)
#define GLUE_MAX_FPSTACK_SIZE   0
#define GLUE_JMP_SET_OFFSET(endOfInstruction, offset)
#define GLUE_FUNC_ENTER_SIZE   0
#define GLUE_FUNC_LEAVE_SIZE   0
#define GLUE_MOV_PX_DIRECTVALUE_SIZE   10
#define GLUE_MOV_PX_DIRECTVALUE_TOSTACK_SIZE   14
#define GLUE_MOV_PX_DIRECTVALUE_TOFPREG2_SIZE   14
#define GLUE_STORE_P1_TO_STACK_AT_OFFS_SIZE(x)
#define GLUE_MOVE_PX_STACKPTR_SIZE   3
#define GLUE_MOVE_STACK_SIZE   7
#define GLUE_POP_PX_SIZE   2
#define GLUE_SET_PX_FROM_P1_SIZE   3
#define GLUE_POP_FPSTACK_SIZE   0
#define GLUE_SET_PX_FROM_WTP_SIZE   3
#define GLUE_PUSH_VAL_AT_PX_TO_FPSTACK_SIZE   4
#define GLUE_POP_FPSTACK_TO_WTP_TO_PX_SIZE   (GLUE_SET_PX_FROM_WTP_SIZE + sizeof(GLUE_POP_FPSTACK_TO_WTP))
#define GLUE_CALL_CODE(bp, cp, rt)
#define GLUE_TABPTR_IGNORED
#define INT_TO_LECHARS(x)
#define GLUE_INLINE_LOOPS
#define GLUE_LOOP_CLAMPCNT_SIZE   0
#define GLUE_LOOP_CLAMPCNT   ""
#define GLUE_LOOP_BEGIN_SIZE   sizeof(GLUE_LOOP_BEGIN)
#define GLUE_WHILE_SETUP   ""
#define GLUE_WHILE_SETUP_SIZE   0
#define GLUE_WHILE_END_NOJUMP
#define GLUE_HAS_FLDZ
#define GLUE_INVSQRT_NEEDREPL   &negativezeropointfive, &onepointfive,
#define GLUE_HAS_FUSE   1
#define PTR_32_OK(x)

Functions

static void GLUE_RESTORE_SPILL_TO_FPREG2 (void *b, int ws)
static void GLUE_SAVE_TO_SPILL (void *b, int ws)
static void GLUE_MOV_PX_DIRECTVALUE_GEN (void *b, INT_PTR v, int wr)
static void GLUE_STORE_P1_TO_STACK_AT_OFFS (void *b, int offs)
static void GLUE_MOVE_PX_STACKPTR_GEN (void *b, int wv)
static void GLUE_MOVE_STACK (void *b, int amt)
static void GLUE_POP_PX (void *b, int wv)
static int GLUE_POP_VALUE_TO_ADDR (unsigned char *buf, void *destptr)
static int GLUE_COPY_VALUE_AT_P1_TO_PTR (unsigned char *buf, void *destptr)
static int GLUE_POP_FPSTACK_TO_PTR (unsigned char *buf, void *destptr)
static void GLUE_SET_PX_FROM_P1 (void *b, int wv)
static void GLUE_SET_PX_FROM_WTP (void *b, int wv)
static void GLUE_PUSH_VAL_AT_PX_TO_FPSTACK (void *b, int wv)
static void GLUE_POP_FPSTACK_TO_WTP_TO_PX (unsigned char *buf, int wv)
static int GLUE_RESET_WTP (unsigned char *out, void *ptr)
void eel_callcode64 (INT_PTR code, INT_PTR ram_tab)
void eel_callcode64_fast (INT_PTR code, INT_PTR ram_tab)
static unsigned char * EEL_GLUE_set_immediate (void *_p, INT_PTR newv)
static voidGLUE_realAddress (void *fn, int *size)
static int GLUE_FUSE (compileContext *ctx, unsigned char *code, int left_size, int right_size, int fuse_flags, int spill_reg)

Variables

static const unsigned int GLUE_COPY_FPSTACK_TO_FPREG2 [] = { 0xc8100ff2 }
static unsigned char GLUE_POP_STACK_TO_FPREG2 []
static const unsigned char GLUE_JMP_NC [] = { 0xE9, 0,0,0,0, }
static const unsigned char GLUE_JMP_IF_P1_Z [] = {0x85, 0xC0, 0x0F, 0x84, 0,0,0,0 }
static const unsigned char GLUE_JMP_IF_P1_NZ [] = {0x85, 0xC0, 0x0F, 0x85, 0,0,0,0 }
static const unsigned int GLUE_FUNC_ENTER [1]
static const unsigned int GLUE_FUNC_LEAVE [1]
static const unsigned char GLUE_PUSH_P1 [2] ={ 0x50,0x50}
static const unsigned char GLUE_PUSH_P1PTR_AS_VALUE []
static const unsigned char GLUE_POP_FPSTACK [1] = { 0 }
static const unsigned char GLUE_POP_FPSTACK_TOSTACK []
static const unsigned char GLUE_POP_FPSTACK_TO_WTP []
static const unsigned char GLUE_RET =0xC3
static const unsigned char GLUE_LOOP_LOADCNT []
static const unsigned char GLUE_LOOP_BEGIN []
static const unsigned char GLUE_LOOP_END []
static const unsigned char GLUE_WHILE_BEGIN []
static const unsigned char GLUE_WHILE_END []
static const unsigned char GLUE_WHILE_CHECK_RV []
static const unsigned char GLUE_SET_P1_Z [] = { 0x48, 0x29, 0xC0 }
static const unsigned char GLUE_SET_P1_NZ [] = { 0xb0, 0x01 }
static const unsigned char GLUE_FLDZ []
static EEL_F negativezeropointfive =-0.5f
static EEL_F onepointfive =1.5f

Macro Definition Documentation

◆ GLUE_CALL_CODE

#define GLUE_CALL_CODE ( bp,
cp,
rt )
Value:
do { \
} while(0)
static void eel_callcode64(INT_PTR bp, INT_PTR cp, INT_PTR rt)
Definition glue_aarch64.h:227
INT_PTR INT_PTR rt
Definition glue_arm.h:222
void eel_callcode64_fast(INT_PTR code, INT_PTR ram_tab)
#define NSEEL_CODE_COMPILE_FLAG_NOFPSTATE
Definition ns-eel.h:176
uch h[RAND_HEAD_LEN]
Definition crypt.c:459
char * cp
Definition unix.c:513

◆ GLUE_FUNC_ENTER_SIZE

#define GLUE_FUNC_ENTER_SIZE   0

◆ GLUE_FUNC_LEAVE_SIZE

#define GLUE_FUNC_LEAVE_SIZE   0

◆ GLUE_HAS_FLDZ

#define GLUE_HAS_FLDZ

◆ GLUE_HAS_FPREG2

#define GLUE_HAS_FPREG2   1

◆ GLUE_HAS_FUSE

#define GLUE_HAS_FUSE   1

◆ GLUE_INLINE_LOOPS

#define GLUE_INLINE_LOOPS

◆ GLUE_INVSQRT_NEEDREPL

#define GLUE_INVSQRT_NEEDREPL   &negativezeropointfive, &onepointfive,

◆ GLUE_JMP_SET_OFFSET

#define GLUE_JMP_SET_OFFSET ( endOfInstruction,
offset )
Value:
(((int *)(endOfInstruction))[-1] = (int) (offset))

◆ GLUE_LOOP_BEGIN_SIZE

#define GLUE_LOOP_BEGIN_SIZE   sizeof(GLUE_LOOP_BEGIN)

◆ GLUE_LOOP_CLAMPCNT

#define GLUE_LOOP_CLAMPCNT   ""

◆ GLUE_LOOP_CLAMPCNT_SIZE

#define GLUE_LOOP_CLAMPCNT_SIZE   0

◆ GLUE_MAX_FPSTACK_SIZE

#define GLUE_MAX_FPSTACK_SIZE   0

◆ GLUE_MAX_SPILL_REGS

#define GLUE_MAX_SPILL_REGS   4

◆ GLUE_MOV_PX_DIRECTVALUE_SIZE

#define GLUE_MOV_PX_DIRECTVALUE_SIZE   10

◆ GLUE_MOV_PX_DIRECTVALUE_TOFPREG2_SIZE

#define GLUE_MOV_PX_DIRECTVALUE_TOFPREG2_SIZE   14

◆ GLUE_MOV_PX_DIRECTVALUE_TOSTACK_SIZE

#define GLUE_MOV_PX_DIRECTVALUE_TOSTACK_SIZE   14

◆ GLUE_MOVE_PX_STACKPTR_SIZE

#define GLUE_MOVE_PX_STACKPTR_SIZE   3

◆ GLUE_MOVE_STACK_SIZE

#define GLUE_MOVE_STACK_SIZE   7

◆ GLUE_POP_FPSTACK_SIZE

#define GLUE_POP_FPSTACK_SIZE   0

◆ GLUE_POP_FPSTACK_TO_WTP_TO_PX_SIZE

#define GLUE_POP_FPSTACK_TO_WTP_TO_PX_SIZE   (GLUE_SET_PX_FROM_WTP_SIZE + sizeof(GLUE_POP_FPSTACK_TO_WTP))

◆ GLUE_POP_PX_SIZE

#define GLUE_POP_PX_SIZE   2

◆ GLUE_PREFER_NONFP_DV_ASSIGNS

#define GLUE_PREFER_NONFP_DV_ASSIGNS

◆ GLUE_PUSH_VAL_AT_PX_TO_FPSTACK_SIZE

#define GLUE_PUSH_VAL_AT_PX_TO_FPSTACK_SIZE   4

◆ GLUE_RESTORE_SPILL_TO_FPREG2_SIZE

#define GLUE_RESTORE_SPILL_TO_FPREG2_SIZE ( x)
Value:
(4)

◆ GLUE_SAVE_TO_SPILL_SIZE

#define GLUE_SAVE_TO_SPILL_SIZE ( x)
Value:
(4)

◆ GLUE_SET_PX_FROM_P1_SIZE

#define GLUE_SET_PX_FROM_P1_SIZE   3

◆ GLUE_SET_PX_FROM_WTP_SIZE

#define GLUE_SET_PX_FROM_WTP_SIZE   3

◆ GLUE_STORE_P1_TO_STACK_AT_OFFS_SIZE

#define GLUE_STORE_P1_TO_STACK_AT_OFFS_SIZE ( x)
Value:
8

◆ GLUE_TABPTR_IGNORED

#define GLUE_TABPTR_IGNORED

◆ GLUE_WHILE_END_NOJUMP

#define GLUE_WHILE_END_NOJUMP

◆ GLUE_WHILE_SETUP

#define GLUE_WHILE_SETUP   ""

◆ GLUE_WHILE_SETUP_SIZE

#define GLUE_WHILE_SETUP_SIZE   0

◆ INT_TO_LECHARS

#define INT_TO_LECHARS ( x)
Value:
((x)&0xff),(((x)>>8)&0xff), (((x)>>16)&0xff), (((x)>>24)&0xff)
unsigned x[BMAX+1]
Definition inflate.c:1586

◆ PTR_32_OK

#define PTR_32_OK ( x)
Value:
((x) == (INT_PTR)(int)(x))
intptr_t INT_PTR
Definition swell-types.h:42
typedef int(UZ_EXP MsgFn)()

Function Documentation

◆ eel_callcode64()

void eel_callcode64 ( INT_PTR code,
INT_PTR ram_tab )
extern

◆ eel_callcode64_fast()

void eel_callcode64_fast ( INT_PTR code,
INT_PTR ram_tab )
extern

◆ EEL_GLUE_set_immediate()

unsigned char * EEL_GLUE_set_immediate ( void * _p,
INT_PTR newv )
static

◆ GLUE_COPY_VALUE_AT_P1_TO_PTR()

int GLUE_COPY_VALUE_AT_P1_TO_PTR ( unsigned char * buf,
void * destptr )
static

◆ GLUE_FUSE()

int GLUE_FUSE ( compileContext * ctx,
unsigned char * code,
int left_size,
int right_size,
int fuse_flags,
int spill_reg )
static

◆ GLUE_MOV_PX_DIRECTVALUE_GEN()

void GLUE_MOV_PX_DIRECTVALUE_GEN ( void * b,
INT_PTR v,
int wr )
static

◆ GLUE_MOVE_PX_STACKPTR_GEN()

void GLUE_MOVE_PX_STACKPTR_GEN ( void * b,
int wv )
static

◆ GLUE_MOVE_STACK()

void GLUE_MOVE_STACK ( void * b,
int amt )
static

◆ GLUE_POP_FPSTACK_TO_PTR()

int GLUE_POP_FPSTACK_TO_PTR ( unsigned char * buf,
void * destptr )
static

◆ GLUE_POP_FPSTACK_TO_WTP_TO_PX()

void GLUE_POP_FPSTACK_TO_WTP_TO_PX ( unsigned char * buf,
int wv )
static

◆ GLUE_POP_PX()

void GLUE_POP_PX ( void * b,
int wv )
static

◆ GLUE_POP_VALUE_TO_ADDR()

int GLUE_POP_VALUE_TO_ADDR ( unsigned char * buf,
void * destptr )
static

◆ GLUE_PUSH_VAL_AT_PX_TO_FPSTACK()

void GLUE_PUSH_VAL_AT_PX_TO_FPSTACK ( void * b,
int wv )
static

◆ GLUE_realAddress()

void * GLUE_realAddress ( void * fn,
int * size )
static

◆ GLUE_RESET_WTP()

int GLUE_RESET_WTP ( unsigned char * out,
void * ptr )
static

◆ GLUE_RESTORE_SPILL_TO_FPREG2()

void GLUE_RESTORE_SPILL_TO_FPREG2 ( void * b,
int ws )
static

◆ GLUE_SAVE_TO_SPILL()

void GLUE_SAVE_TO_SPILL ( void * b,
int ws )
static

◆ GLUE_SET_PX_FROM_P1()

void GLUE_SET_PX_FROM_P1 ( void * b,
int wv )
static

◆ GLUE_SET_PX_FROM_WTP()

void GLUE_SET_PX_FROM_WTP ( void * b,
int wv )
static

◆ GLUE_STORE_P1_TO_STACK_AT_OFFS()

void GLUE_STORE_P1_TO_STACK_AT_OFFS ( void * b,
int offs )
static

Variable Documentation

◆ GLUE_COPY_FPSTACK_TO_FPREG2

const unsigned int GLUE_COPY_FPSTACK_TO_FPREG2[] = { 0xc8100ff2 }
static

◆ GLUE_FLDZ

const unsigned char GLUE_FLDZ[]
static
Initial value:
= {
0x0f, 0x57, 0xc0
}

◆ GLUE_FUNC_ENTER

const unsigned int GLUE_FUNC_ENTER[1]
static

◆ GLUE_FUNC_LEAVE

const unsigned int GLUE_FUNC_LEAVE[1]
static

◆ GLUE_JMP_IF_P1_NZ

const unsigned char GLUE_JMP_IF_P1_NZ[] = {0x85, 0xC0, 0x0F, 0x85, 0,0,0,0 }
static

◆ GLUE_JMP_IF_P1_Z

const unsigned char GLUE_JMP_IF_P1_Z[] = {0x85, 0xC0, 0x0F, 0x84, 0,0,0,0 }
static

◆ GLUE_JMP_NC

const unsigned char GLUE_JMP_NC[] = { 0xE9, 0,0,0,0, }
static

◆ GLUE_LOOP_BEGIN

const unsigned char GLUE_LOOP_BEGIN[]
static
Initial value:
={
0x56,
0x51,
}

◆ GLUE_LOOP_END

const unsigned char GLUE_LOOP_END[]
static
Initial value:
={
0x59,
0x5E,
0xff, 0xc9,
0x0f, 0x85, 0,0,0,0,
}

◆ GLUE_LOOP_LOADCNT

const unsigned char GLUE_LOOP_LOADCNT[]
static
Initial value:
={
0xf2, 0x48, 0x0f, 0x2c, 0xc8,
0x48, 0x81, 0xf9, 1,0,0,0,
0x0F, 0x8C, 0,0,0,0,
}

◆ GLUE_POP_FPSTACK

const unsigned char GLUE_POP_FPSTACK[1] = { 0 }
static

◆ GLUE_POP_FPSTACK_TO_WTP

const unsigned char GLUE_POP_FPSTACK_TO_WTP[]
static
Initial value:
= {
0xf2, 0x0f, 0x11, 0x06,
0x48, 0x81, 0xC6, 8, 0,0,0,
}

◆ GLUE_POP_FPSTACK_TOSTACK

const unsigned char GLUE_POP_FPSTACK_TOSTACK[]
static
Initial value:
= {
0x48, 0x81, 0xEC, 16, 0,0,0,
0xf2, 0x0f, 0x11, 0x04, 0x24,
}

◆ GLUE_POP_STACK_TO_FPREG2

unsigned char GLUE_POP_STACK_TO_FPREG2[]
static
Initial value:
= {
0xf2, 0x0f, 0x10, 0x0c, 0x24,
0x48, 0x81, 0xC4, 16, 0,0,0,
}

◆ GLUE_PUSH_P1

const unsigned char GLUE_PUSH_P1[2] ={ 0x50,0x50}
static

◆ GLUE_PUSH_P1PTR_AS_VALUE

const unsigned char GLUE_PUSH_P1PTR_AS_VALUE[]
static
Initial value:
=
{
0x50,
0xff, 0x30,
}

◆ GLUE_RET

const unsigned char GLUE_RET =0xC3
static

◆ GLUE_SET_P1_NZ

const unsigned char GLUE_SET_P1_NZ[] = { 0xb0, 0x01 }
static

◆ GLUE_SET_P1_Z

const unsigned char GLUE_SET_P1_Z[] = { 0x48, 0x29, 0xC0 }
static

◆ GLUE_WHILE_BEGIN

const unsigned char GLUE_WHILE_BEGIN[]
static
Initial value:
={
0x56,
0x51,
}

◆ GLUE_WHILE_CHECK_RV

const unsigned char GLUE_WHILE_CHECK_RV[]
static
Initial value:
= {
0x85, 0xC0,
0x0F, 0x85, 0,0,0,0
}

◆ GLUE_WHILE_END

const unsigned char GLUE_WHILE_END[]
static
Initial value:
={
0x59,
0x5E,
}

◆ negativezeropointfive

EEL_F negativezeropointfive =-0.5f
static

◆ onepointfive

EEL_F onepointfive =1.5f
static