php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
sljitNativeRISCV_common.c File Reference

Go to the source code of this file.

Macros

#define TMP_REG1   (SLJIT_NUMBER_OF_REGISTERS + 2)
 
#define TMP_REG2   (SLJIT_NUMBER_OF_REGISTERS + 3)
 
#define TMP_REG3   (SLJIT_NUMBER_OF_REGISTERS + 4)
 
#define TMP_ZERO   0
 
#define EQUAL_FLAG   (SLJIT_NUMBER_OF_REGISTERS + 5)
 
#define RETURN_ADDR_REG   TMP_REG2
 
#define OTHER_FLAG   (SLJIT_NUMBER_OF_REGISTERS + 6)
 
#define TMP_FREG1   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)
 
#define TMP_FREG2   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)
 
#define RD(rd)
 
#define RS1(rs1)
 
#define RS2(rs2)
 
#define FRD(rd)
 
#define FRS1(rs1)
 
#define FRS2(rs2)
 
#define IMM_I(imm)
 
#define IMM_S(imm)
 
#define OPC(o)
 
#define F3(f)
 
#define F12(f)
 
#define F7(f)
 
#define ADD   (F7(0x0) | F3(0x0) | OPC(0x33))
 
#define ADDI   (F3(0x0) | OPC(0x13))
 
#define AND   (F7(0x0) | F3(0x7) | OPC(0x33))
 
#define ANDI   (F3(0x7) | OPC(0x13))
 
#define AUIPC   (OPC(0x17))
 
#define BEQ   (F3(0x0) | OPC(0x63))
 
#define BNE   (F3(0x1) | OPC(0x63))
 
#define BLT   (F3(0x4) | OPC(0x63))
 
#define BGE   (F3(0x5) | OPC(0x63))
 
#define BLTU   (F3(0x6) | OPC(0x63))
 
#define BGEU   (F3(0x7) | OPC(0x63))
 
#define DIV   (F7(0x1) | F3(0x4) | OPC(0x33))
 
#define DIVU   (F7(0x1) | F3(0x5) | OPC(0x33))
 
#define EBREAK   (F12(0x1) | F3(0x0) | OPC(0x73))
 
#define FADD_S   (F7(0x0) | F3(0x7) | OPC(0x53))
 
#define FDIV_S   (F7(0xc) | F3(0x7) | OPC(0x53))
 
#define FEQ_S   (F7(0x50) | F3(0x2) | OPC(0x53))
 
#define FLD   (F3(0x3) | OPC(0x7))
 
#define FLE_S   (F7(0x50) | F3(0x0) | OPC(0x53))
 
#define FLT_S   (F7(0x50) | F3(0x1) | OPC(0x53))
 
#define FCVT_S_D   (F7(0x20) | OPC(0x53))
 
#define FCVT_S_W   (F7(0x68) | OPC(0x53))
 
#define FCVT_S_WU   (F7(0x68) | F12(0x1) | OPC(0x53))
 
#define FCVT_W_S   (F7(0x60) | F3(0x1) | OPC(0x53))
 
#define FMUL_S   (F7(0x8) | F3(0x7) | OPC(0x53))
 
#define FMV_X_W   (F7(0x70) | F3(0x0) | OPC(0x53))
 
#define FMV_W_X   (F7(0x78) | F3(0x0) | OPC(0x53))
 
#define FSD   (F3(0x3) | OPC(0x27))
 
#define FSGNJ_S   (F7(0x10) | F3(0x0) | OPC(0x53))
 
#define FSGNJN_S   (F7(0x10) | F3(0x1) | OPC(0x53))
 
#define FSGNJX_S   (F7(0x10) | F3(0x2) | OPC(0x53))
 
#define FSUB_S   (F7(0x4) | F3(0x7) | OPC(0x53))
 
#define FSW   (F3(0x2) | OPC(0x27))
 
#define JAL   (OPC(0x6f))
 
#define JALR   (F3(0x0) | OPC(0x67))
 
#define LD   (F3(0x3) | OPC(0x3))
 
#define LUI   (OPC(0x37))
 
#define LW   (F3(0x2) | OPC(0x3))
 
#define MUL   (F7(0x1) | F3(0x0) | OPC(0x33))
 
#define MULH   (F7(0x1) | F3(0x1) | OPC(0x33))
 
#define MULHU   (F7(0x1) | F3(0x3) | OPC(0x33))
 
#define OR   (F7(0x0) | F3(0x6) | OPC(0x33))
 
#define ORI   (F3(0x6) | OPC(0x13))
 
#define REM   (F7(0x1) | F3(0x6) | OPC(0x33))
 
#define REMU   (F7(0x1) | F3(0x7) | OPC(0x33))
 
#define SD   (F3(0x3) | OPC(0x23))
 
#define SLL   (F7(0x0) | F3(0x1) | OPC(0x33))
 
#define SLLI   (IMM_I(0x0) | F3(0x1) | OPC(0x13))
 
#define SLT   (F7(0x0) | F3(0x2) | OPC(0x33))
 
#define SLTI   (F3(0x2) | OPC(0x13))
 
#define SLTU   (F7(0x0) | F3(0x3) | OPC(0x33))
 
#define SLTUI   (F3(0x3) | OPC(0x13))
 
#define SRL   (F7(0x0) | F3(0x5) | OPC(0x33))
 
#define SRLI   (IMM_I(0x0) | F3(0x5) | OPC(0x13))
 
#define SRA   (F7(0x20) | F3(0x5) | OPC(0x33))
 
#define SRAI   (IMM_I(0x400) | F3(0x5) | OPC(0x13))
 
#define SUB   (F7(0x20) | F3(0x0) | OPC(0x33))
 
#define SW   (F3(0x2) | OPC(0x23))
 
#define XOR   (F7(0x0) | F3(0x4) | OPC(0x33))
 
#define XORI   (F3(0x4) | OPC(0x13))
 
#define SIMM_MAX   (0x7ff)
 
#define SIMM_MIN   (-0x800)
 
#define BRANCH_MAX   (0xfff)
 
#define BRANCH_MIN   (-0x1000)
 
#define JUMP_MAX   (0xfffff)
 
#define JUMP_MIN   (-0x100000)
 
#define LOAD_DATA   0x01
 
#define WORD_DATA   0x00
 
#define BYTE_DATA   0x02
 
#define HALF_DATA   0x04
 
#define INT_DATA   0x06
 
#define SIGNED_DATA   0x08
 
#define GPR_REG   0x0f
 
#define DOUBLE_DATA   0x10
 
#define SINGLE_DATA   0x12
 
#define MEM_MASK   0x1f
 
#define ARG_TEST   0x00020
 
#define ALT_KEEP_CACHE   0x00040
 
#define CUMULATIVE_OP   0x00080
 
#define IMM_OP   0x00100
 
#define MOVE_OP   0x00200
 
#define SRC2_IMM   0x00400
 
#define UNUSED_DEST   0x00800
 
#define REG_DEST   0x01000
 
#define REG1_SOURCE   0x02000
 
#define REG2_SOURCE   0x04000
 
#define SLOW_SRC1   0x08000
 
#define SLOW_SRC2   0x10000
 
#define SLOW_DEST   0x20000
 
#define MEM_USE_TMP2   0x40000
 
#define STACK_STORE   SD
 
#define STACK_LOAD   LD
 
#define STACK_MAX_DISTANCE   (-SIMM_MIN)
 
#define STACK_MAX_DISTANCE   (-SIMM_MIN - 16)
 
#define ARCH_32_64(a, b)
 
#define TO_ARGW_HI(argw)
 
#define WORD   word
 
#define WORD_32   0x08
 
#define IMM_EXTEND(v)
 
#define EMIT_LOGICAL(op_imm, op_reg)
 
#define EMIT_SHIFT(imm, reg)
 
#define FLOAT_DATA(op)
 
#define FMT(op)
 
#define BRANCH_LENGTH   ((sljit_ins)(7 * sizeof(sljit_ins)) << 7)
 

Functions

SLJIT_API_FUNC_ATTRIBUTE const char * sljit_get_platform_name (void)
 
SLJIT_API_FUNC_ATTRIBUTE voidsljit_generate_code (struct sljit_compiler *compiler, sljit_s32 options, void *exec_allocator_data)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature (sljit_s32 feature_type)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_cmp_info (sljit_s32 type)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter (struct sljit_compiler *compiler, sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context (struct sljit_compiler *compiler, sljit_s32 options, sljit_s32 arg_types, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return_void (struct sljit_compiler *compiler)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return_to (struct sljit_compiler *compiler, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0 (struct sljit_compiler *compiler, sljit_s32 op)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1 (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2 (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2u (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2r (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst_reg, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_shift_into (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst_reg, sljit_s32 src1_reg, sljit_s32 src2_reg, sljit_s32 src3, sljit_sw src3w)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_src (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_dst (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index (sljit_s32 type, sljit_s32 reg)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom (struct sljit_compiler *compiler, void *instruction, sljit_u32 size)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1 (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2 (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fset32 (struct sljit_compiler *compiler, sljit_s32 freg, sljit_f32 value)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_labelsljit_emit_label (struct sljit_compiler *compiler)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jumpsljit_emit_jump (struct sljit_compiler *compiler, sljit_s32 type)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jumpsljit_emit_call (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 arg_types)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jumpsljit_emit_cmp (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2, sljit_sw src2w)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 arg_types, sljit_s32 src, sljit_sw srcw)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags (struct sljit_compiler *compiler, sljit_s32 op, sljit_s32 dst, sljit_sw dstw, sljit_s32 type)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_select (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 dst_reg, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2_reg)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fselect (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 dst_freg, sljit_s32 src1, sljit_sw src1w, sljit_s32 src2_freg)
 
SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem (struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 reg, sljit_s32 mem, sljit_sw memw)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_constsljit_emit_const (struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw init_value)
 
SLJIT_API_FUNC_ATTRIBUTE struct sljit_jumpsljit_emit_mov_addr (struct sljit_compiler *compiler, sljit_s32 dst, sljit_sw dstw)
 
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_const (sljit_uw addr, sljit_sw new_constant, sljit_sw executable_offset)
 

Macro Definition Documentation

◆ ADD

#define ADD   (F7(0x0) | F3(0x0) | OPC(0x33))

Definition at line 80 of file sljitNativeRISCV_common.c.

◆ ADDI

#define ADDI   (F3(0x0) | OPC(0x13))

Definition at line 81 of file sljitNativeRISCV_common.c.

◆ ALT_KEEP_CACHE

#define ALT_KEEP_CACHE   0x00040

Definition at line 693 of file sljitNativeRISCV_common.c.

◆ AND

#define AND   (F7(0x0) | F3(0x7) | OPC(0x33))

Definition at line 82 of file sljitNativeRISCV_common.c.

◆ ANDI

#define ANDI   (F3(0x7) | OPC(0x13))

Definition at line 83 of file sljitNativeRISCV_common.c.

◆ ARCH_32_64

#define ARCH_32_64 ( a,
b )
Value:
b

Definition at line 943 of file sljitNativeRISCV_common.c.

◆ ARG_TEST

#define ARG_TEST   0x00020

Definition at line 692 of file sljitNativeRISCV_common.c.

◆ AUIPC

#define AUIPC   (OPC(0x17))

Definition at line 84 of file sljitNativeRISCV_common.c.

◆ BEQ

#define BEQ   (F3(0x0) | OPC(0x63))

Definition at line 85 of file sljitNativeRISCV_common.c.

◆ BGE

#define BGE   (F3(0x5) | OPC(0x63))

Definition at line 88 of file sljitNativeRISCV_common.c.

◆ BGEU

#define BGEU   (F3(0x7) | OPC(0x63))

Definition at line 90 of file sljitNativeRISCV_common.c.

◆ BLT

#define BLT   (F3(0x4) | OPC(0x63))

Definition at line 87 of file sljitNativeRISCV_common.c.

◆ BLTU

#define BLTU   (F3(0x6) | OPC(0x63))

Definition at line 89 of file sljitNativeRISCV_common.c.

◆ BNE

#define BNE   (F3(0x1) | OPC(0x63))

Definition at line 86 of file sljitNativeRISCV_common.c.

◆ BRANCH_LENGTH

#define BRANCH_LENGTH   ((sljit_ins)(7 * sizeof(sljit_ins)) << 7)

Definition at line 2560 of file sljitNativeRISCV_common.c.

◆ BRANCH_MAX

#define BRANCH_MAX   (0xfff)

Definition at line 144 of file sljitNativeRISCV_common.c.

◆ BRANCH_MIN

#define BRANCH_MIN   (-0x1000)

Definition at line 145 of file sljitNativeRISCV_common.c.

◆ BYTE_DATA

#define BYTE_DATA   0x02

Definition at line 681 of file sljitNativeRISCV_common.c.

◆ CUMULATIVE_OP

#define CUMULATIVE_OP   0x00080

Definition at line 694 of file sljitNativeRISCV_common.c.

◆ DIV

#define DIV   (F7(0x1) | F3(0x4) | OPC(0x33))

Definition at line 91 of file sljitNativeRISCV_common.c.

◆ DIVU

#define DIVU   (F7(0x1) | F3(0x5) | OPC(0x33))

Definition at line 92 of file sljitNativeRISCV_common.c.

◆ DOUBLE_DATA

#define DOUBLE_DATA   0x10

Definition at line 687 of file sljitNativeRISCV_common.c.

◆ EBREAK

#define EBREAK   (F12(0x1) | F3(0x0) | OPC(0x73))

Definition at line 93 of file sljitNativeRISCV_common.c.

◆ EMIT_LOGICAL

#define EMIT_LOGICAL ( op_imm,
op_reg )
Value:
if (flags & SRC2_IMM) { \
if (op & SLJIT_SET_Z) \
FAIL_IF(push_inst(compiler, op_imm | RD(EQUAL_FLAG) | RS1(src1) | IMM_I(src2))); \
if (!(flags & UNUSED_DEST)) \
FAIL_IF(push_inst(compiler, op_imm | RD(dst) | RS1(src1) | IMM_I(src2))); \
} \
else { \
if (op & SLJIT_SET_Z) \
FAIL_IF(push_inst(compiler, op_reg | RD(EQUAL_FLAG) | RS1(src1) | RS2(src2))); \
if (!(flags & UNUSED_DEST)) \
FAIL_IF(push_inst(compiler, op_reg | RD(dst) | RS1(src1) | RS2(src2))); \
}
#define SLJIT_SET_Z
Definition sljitLir.h:1043
#define RD(rd)
#define SRC2_IMM
#define UNUSED_DEST
#define EQUAL_FLAG
#define IMM_I(imm)
#define RS2(rs2)
#define RS1(rs1)

Definition at line 1268 of file sljitNativeRISCV_common.c.

◆ EMIT_SHIFT

#define EMIT_SHIFT ( imm,
reg )
Value:
op_imm = (imm); \
op_reg = (reg);

Definition at line 1282 of file sljitNativeRISCV_common.c.

◆ EQUAL_FLAG

#define EQUAL_FLAG   (SLJIT_NUMBER_OF_REGISTERS + 5)

Definition at line 46 of file sljitNativeRISCV_common.c.

◆ F12

#define F12 ( f)
Value:
((sljit_ins)(f) << 20)
sljit_u32 sljit_ins

Definition at line 77 of file sljitNativeRISCV_common.c.

◆ F3

#define F3 ( f)
Value:
((sljit_ins)(f) << 12)

Definition at line 76 of file sljitNativeRISCV_common.c.

◆ F7

#define F7 ( f)
Value:
((sljit_ins)(f) << 25)

Definition at line 78 of file sljitNativeRISCV_common.c.

◆ FADD_S

#define FADD_S   (F7(0x0) | F3(0x7) | OPC(0x53))

Definition at line 94 of file sljitNativeRISCV_common.c.

◆ FCVT_S_D

#define FCVT_S_D   (F7(0x20) | OPC(0x53))

Definition at line 101 of file sljitNativeRISCV_common.c.

◆ FCVT_S_W

#define FCVT_S_W   (F7(0x68) | OPC(0x53))

Definition at line 102 of file sljitNativeRISCV_common.c.

◆ FCVT_S_WU

#define FCVT_S_WU   (F7(0x68) | F12(0x1) | OPC(0x53))

Definition at line 103 of file sljitNativeRISCV_common.c.

◆ FCVT_W_S

#define FCVT_W_S   (F7(0x60) | F3(0x1) | OPC(0x53))

Definition at line 104 of file sljitNativeRISCV_common.c.

◆ FDIV_S

#define FDIV_S   (F7(0xc) | F3(0x7) | OPC(0x53))

Definition at line 95 of file sljitNativeRISCV_common.c.

◆ FEQ_S

#define FEQ_S   (F7(0x50) | F3(0x2) | OPC(0x53))

Definition at line 96 of file sljitNativeRISCV_common.c.

◆ FLD

#define FLD   (F3(0x3) | OPC(0x7))

Definition at line 97 of file sljitNativeRISCV_common.c.

◆ FLE_S

#define FLE_S   (F7(0x50) | F3(0x0) | OPC(0x53))

Definition at line 98 of file sljitNativeRISCV_common.c.

◆ FLOAT_DATA

#define FLOAT_DATA ( op)
Value:
(DOUBLE_DATA | ((op & SLJIT_32) >> 7))
#define SLJIT_32
Definition sljitLir.h:978
#define DOUBLE_DATA

Definition at line 2228 of file sljitNativeRISCV_common.c.

◆ FLT_S

#define FLT_S   (F7(0x50) | F3(0x1) | OPC(0x53))

Definition at line 99 of file sljitNativeRISCV_common.c.

◆ FMT

#define FMT ( op)
Value:
((sljit_ins)((op & SLJIT_32) ^ SLJIT_32) << 17)

Definition at line 2229 of file sljitNativeRISCV_common.c.

◆ FMUL_S

#define FMUL_S   (F7(0x8) | F3(0x7) | OPC(0x53))

Definition at line 105 of file sljitNativeRISCV_common.c.

◆ FMV_W_X

#define FMV_W_X   (F7(0x78) | F3(0x0) | OPC(0x53))

Definition at line 107 of file sljitNativeRISCV_common.c.

◆ FMV_X_W

#define FMV_X_W   (F7(0x70) | F3(0x0) | OPC(0x53))

Definition at line 106 of file sljitNativeRISCV_common.c.

◆ FRD

#define FRD ( rd)
Value:
((sljit_ins)freg_map[rd] << 7)

Definition at line 68 of file sljitNativeRISCV_common.c.

◆ FRS1

#define FRS1 ( rs1)
Value:
((sljit_ins)freg_map[rs1] << 15)

Definition at line 69 of file sljitNativeRISCV_common.c.

◆ FRS2

#define FRS2 ( rs2)
Value:
((sljit_ins)freg_map[rs2] << 20)

Definition at line 70 of file sljitNativeRISCV_common.c.

◆ FSD

#define FSD   (F3(0x3) | OPC(0x27))

Definition at line 108 of file sljitNativeRISCV_common.c.

◆ FSGNJ_S

#define FSGNJ_S   (F7(0x10) | F3(0x0) | OPC(0x53))

Definition at line 109 of file sljitNativeRISCV_common.c.

◆ FSGNJN_S

#define FSGNJN_S   (F7(0x10) | F3(0x1) | OPC(0x53))

Definition at line 110 of file sljitNativeRISCV_common.c.

◆ FSGNJX_S

#define FSGNJX_S   (F7(0x10) | F3(0x2) | OPC(0x53))

Definition at line 111 of file sljitNativeRISCV_common.c.

◆ FSUB_S

#define FSUB_S   (F7(0x4) | F3(0x7) | OPC(0x53))

Definition at line 112 of file sljitNativeRISCV_common.c.

◆ FSW

#define FSW   (F3(0x2) | OPC(0x27))

Definition at line 113 of file sljitNativeRISCV_common.c.

◆ GPR_REG

#define GPR_REG   0x0f

Definition at line 686 of file sljitNativeRISCV_common.c.

◆ HALF_DATA

#define HALF_DATA   0x04

Definition at line 682 of file sljitNativeRISCV_common.c.

◆ IMM_EXTEND

#define IMM_EXTEND ( v)
Value:
(IMM_I((op & SLJIT_32) ? (v) : (32 + (v))))
uint32_t v
Definition cdf.c:1237

Definition at line 1162 of file sljitNativeRISCV_common.c.

◆ IMM_I

#define IMM_I ( imm)
Value:
((sljit_ins)(imm) << 20)

Definition at line 71 of file sljitNativeRISCV_common.c.

◆ IMM_OP

#define IMM_OP   0x00100

Definition at line 695 of file sljitNativeRISCV_common.c.

◆ IMM_S

#define IMM_S ( imm)
Value:
((((sljit_ins)(imm) & 0xfe0) << 20) | (((sljit_ins)(imm) & 0x1f) << 7))

Definition at line 72 of file sljitNativeRISCV_common.c.

◆ INT_DATA

#define INT_DATA   0x06

Definition at line 683 of file sljitNativeRISCV_common.c.

◆ JAL

#define JAL   (OPC(0x6f))

Definition at line 114 of file sljitNativeRISCV_common.c.

◆ JALR

#define JALR   (F3(0x0) | OPC(0x67))

Definition at line 115 of file sljitNativeRISCV_common.c.

◆ JUMP_MAX

#define JUMP_MAX   (0xfffff)

Definition at line 146 of file sljitNativeRISCV_common.c.

◆ JUMP_MIN

#define JUMP_MIN   (-0x100000)

Definition at line 147 of file sljitNativeRISCV_common.c.

◆ LD

#define LD   (F3(0x3) | OPC(0x3))

Definition at line 116 of file sljitNativeRISCV_common.c.

◆ LOAD_DATA

#define LOAD_DATA   0x01

Definition at line 679 of file sljitNativeRISCV_common.c.

◆ LUI

#define LUI   (OPC(0x37))

Definition at line 117 of file sljitNativeRISCV_common.c.

◆ LW

#define LW   (F3(0x2) | OPC(0x3))

Definition at line 118 of file sljitNativeRISCV_common.c.

◆ MEM_MASK

#define MEM_MASK   0x1f

Definition at line 690 of file sljitNativeRISCV_common.c.

◆ MEM_USE_TMP2

#define MEM_USE_TMP2   0x40000

Definition at line 706 of file sljitNativeRISCV_common.c.

◆ MOVE_OP

#define MOVE_OP   0x00200

Definition at line 696 of file sljitNativeRISCV_common.c.

◆ MUL

#define MUL   (F7(0x1) | F3(0x0) | OPC(0x33))

Definition at line 119 of file sljitNativeRISCV_common.c.

◆ MULH

#define MULH   (F7(0x1) | F3(0x1) | OPC(0x33))

Definition at line 120 of file sljitNativeRISCV_common.c.

◆ MULHU

#define MULHU   (F7(0x1) | F3(0x3) | OPC(0x33))

Definition at line 121 of file sljitNativeRISCV_common.c.

◆ OPC

#define OPC ( o)
Value:
((sljit_ins)(o))

Definition at line 75 of file sljitNativeRISCV_common.c.

◆ OR

#define OR   (F7(0x0) | F3(0x6) | OPC(0x33))

Definition at line 122 of file sljitNativeRISCV_common.c.

◆ ORI

#define ORI   (F3(0x6) | OPC(0x13))

Definition at line 123 of file sljitNativeRISCV_common.c.

◆ OTHER_FLAG

#define OTHER_FLAG   (SLJIT_NUMBER_OF_REGISTERS + 6)

Definition at line 48 of file sljitNativeRISCV_common.c.

◆ RD

#define RD ( rd)
Value:
((sljit_ins)reg_map[rd] << 7)

Definition at line 65 of file sljitNativeRISCV_common.c.

◆ REG1_SOURCE

#define REG1_SOURCE   0x02000

Definition at line 701 of file sljitNativeRISCV_common.c.

◆ REG2_SOURCE

#define REG2_SOURCE   0x04000

Definition at line 702 of file sljitNativeRISCV_common.c.

◆ REG_DEST

#define REG_DEST   0x01000

Definition at line 700 of file sljitNativeRISCV_common.c.

◆ REM

#define REM   (F7(0x1) | F3(0x6) | OPC(0x33))

Definition at line 124 of file sljitNativeRISCV_common.c.

◆ REMU

#define REMU   (F7(0x1) | F3(0x7) | OPC(0x33))

Definition at line 125 of file sljitNativeRISCV_common.c.

◆ RETURN_ADDR_REG

#define RETURN_ADDR_REG   TMP_REG2

Definition at line 47 of file sljitNativeRISCV_common.c.

◆ RS1

#define RS1 ( rs1)
Value:
((sljit_ins)reg_map[rs1] << 15)

Definition at line 66 of file sljitNativeRISCV_common.c.

◆ RS2

#define RS2 ( rs2)
Value:
((sljit_ins)reg_map[rs2] << 20)

Definition at line 67 of file sljitNativeRISCV_common.c.

◆ SD

#define SD   (F3(0x3) | OPC(0x23))

Definition at line 126 of file sljitNativeRISCV_common.c.

◆ SIGNED_DATA

#define SIGNED_DATA   0x08

Definition at line 684 of file sljitNativeRISCV_common.c.

◆ SIMM_MAX

#define SIMM_MAX   (0x7ff)

Definition at line 142 of file sljitNativeRISCV_common.c.

◆ SIMM_MIN

#define SIMM_MIN   (-0x800)

Definition at line 143 of file sljitNativeRISCV_common.c.

◆ SINGLE_DATA

#define SINGLE_DATA   0x12

Definition at line 688 of file sljitNativeRISCV_common.c.

◆ SLL

#define SLL   (F7(0x0) | F3(0x1) | OPC(0x33))

Definition at line 127 of file sljitNativeRISCV_common.c.

◆ SLLI

#define SLLI   (IMM_I(0x0) | F3(0x1) | OPC(0x13))

Definition at line 128 of file sljitNativeRISCV_common.c.

◆ SLOW_DEST

#define SLOW_DEST   0x20000

Definition at line 705 of file sljitNativeRISCV_common.c.

◆ SLOW_SRC1

#define SLOW_SRC1   0x08000

Definition at line 703 of file sljitNativeRISCV_common.c.

◆ SLOW_SRC2

#define SLOW_SRC2   0x10000

Definition at line 704 of file sljitNativeRISCV_common.c.

◆ SLT

#define SLT   (F7(0x0) | F3(0x2) | OPC(0x33))

Definition at line 129 of file sljitNativeRISCV_common.c.

◆ SLTI

#define SLTI   (F3(0x2) | OPC(0x13))

Definition at line 130 of file sljitNativeRISCV_common.c.

◆ SLTU

#define SLTU   (F7(0x0) | F3(0x3) | OPC(0x33))

Definition at line 131 of file sljitNativeRISCV_common.c.

◆ SLTUI

#define SLTUI   (F3(0x3) | OPC(0x13))

Definition at line 132 of file sljitNativeRISCV_common.c.

◆ SRA

#define SRA   (F7(0x20) | F3(0x5) | OPC(0x33))

Definition at line 135 of file sljitNativeRISCV_common.c.

◆ SRAI

#define SRAI   (IMM_I(0x400) | F3(0x5) | OPC(0x13))

Definition at line 136 of file sljitNativeRISCV_common.c.

◆ SRC2_IMM

#define SRC2_IMM   0x00400

Definition at line 697 of file sljitNativeRISCV_common.c.

◆ SRL

#define SRL   (F7(0x0) | F3(0x5) | OPC(0x33))

Definition at line 133 of file sljitNativeRISCV_common.c.

◆ SRLI

#define SRLI   (IMM_I(0x0) | F3(0x5) | OPC(0x13))

Definition at line 134 of file sljitNativeRISCV_common.c.

◆ STACK_LOAD

#define STACK_LOAD   LD

Definition at line 713 of file sljitNativeRISCV_common.c.

◆ STACK_MAX_DISTANCE [1/2]

#define STACK_MAX_DISTANCE   (-SIMM_MIN)

Definition at line 722 of file sljitNativeRISCV_common.c.

◆ STACK_MAX_DISTANCE [2/2]

#define STACK_MAX_DISTANCE   (-SIMM_MIN - 16)

Definition at line 722 of file sljitNativeRISCV_common.c.

◆ STACK_STORE

#define STACK_STORE   SD

Definition at line 712 of file sljitNativeRISCV_common.c.

◆ SUB

#define SUB   (F7(0x20) | F3(0x0) | OPC(0x33))

Definition at line 137 of file sljitNativeRISCV_common.c.

◆ SW

#define SW   (F3(0x2) | OPC(0x23))

Definition at line 138 of file sljitNativeRISCV_common.c.

◆ TMP_FREG1

#define TMP_FREG1   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 1)

Definition at line 50 of file sljitNativeRISCV_common.c.

◆ TMP_FREG2

#define TMP_FREG2   (SLJIT_NUMBER_OF_FLOAT_REGISTERS + 2)

Definition at line 51 of file sljitNativeRISCV_common.c.

◆ TMP_REG1

#define TMP_REG1   (SLJIT_NUMBER_OF_REGISTERS + 2)

Definition at line 40 of file sljitNativeRISCV_common.c.

◆ TMP_REG2

#define TMP_REG2   (SLJIT_NUMBER_OF_REGISTERS + 3)

Definition at line 41 of file sljitNativeRISCV_common.c.

◆ TMP_REG3

#define TMP_REG3   (SLJIT_NUMBER_OF_REGISTERS + 4)

Definition at line 42 of file sljitNativeRISCV_common.c.

◆ TMP_ZERO

#define TMP_ZERO   0

Definition at line 43 of file sljitNativeRISCV_common.c.

◆ TO_ARGW_HI

#define TO_ARGW_HI ( argw)
Value:
(((argw) & ~0xfff) + (((argw) & 0x800) ? 0x1000 : 0))

Definition at line 1004 of file sljitNativeRISCV_common.c.

◆ UNUSED_DEST

#define UNUSED_DEST   0x00800

Definition at line 699 of file sljitNativeRISCV_common.c.

◆ WORD

#define WORD   word

Definition at line 1160 of file sljitNativeRISCV_common.c.

◆ WORD_32

#define WORD_32   0x08

Definition at line 1161 of file sljitNativeRISCV_common.c.

◆ WORD_DATA

#define WORD_DATA   0x00

Definition at line 680 of file sljitNativeRISCV_common.c.

◆ XOR

#define XOR   (F7(0x0) | F3(0x4) | OPC(0x33))

Definition at line 139 of file sljitNativeRISCV_common.c.

◆ XORI

#define XORI   (F3(0x4) | OPC(0x13))

Definition at line 140 of file sljitNativeRISCV_common.c.

Function Documentation

◆ sljit_cmp_info()

Definition at line 659 of file sljitNativeRISCV_common.c.

◆ sljit_emit_call()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump * sljit_emit_call ( struct sljit_compiler * compiler,
sljit_s32 type,
sljit_s32 arg_types )

Definition at line 2646 of file sljitNativeRISCV_common.c.

◆ sljit_emit_cmp()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump * sljit_emit_cmp ( struct sljit_compiler * compiler,
sljit_s32 type,
sljit_s32 src1,
sljit_sw src1w,
sljit_s32 src2,
sljit_sw src2w )

Definition at line 2662 of file sljitNativeRISCV_common.c.

◆ sljit_emit_const()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_const * sljit_emit_const ( struct sljit_compiler * compiler,
sljit_s32 dst,
sljit_sw dstw,
sljit_sw init_value )

Definition at line 3069 of file sljitNativeRISCV_common.c.

◆ sljit_emit_enter()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_enter ( struct sljit_compiler * compiler,
sljit_s32 options,
sljit_s32 arg_types,
sljit_s32 scratches,
sljit_s32 saveds,
sljit_s32 fscratches,
sljit_s32 fsaveds,
sljit_s32 local_size )

Definition at line 726 of file sljitNativeRISCV_common.c.

◆ sljit_emit_fop1()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1 ( struct sljit_compiler * compiler,
sljit_s32 op,
sljit_s32 dst,
sljit_sw dstw,
sljit_s32 src,
sljit_sw srcw )

Definition at line 2387 of file sljitNativeRISCV_common.c.

◆ sljit_emit_fop2()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2 ( struct sljit_compiler * compiler,
sljit_s32 op,
sljit_s32 dst,
sljit_sw dstw,
sljit_s32 src1,
sljit_sw src1w,
sljit_s32 src2,
sljit_sw src2w )

Definition at line 2437 of file sljitNativeRISCV_common.c.

◆ sljit_emit_fselect()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fselect ( struct sljit_compiler * compiler,
sljit_s32 type,
sljit_s32 dst_freg,
sljit_s32 src1,
sljit_sw src1w,
sljit_s32 src2_freg )

Definition at line 2972 of file sljitNativeRISCV_common.c.

◆ sljit_emit_fset32()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fset32 ( struct sljit_compiler * compiler,
sljit_s32 freg,
sljit_f32 value )

Definition at line 2517 of file sljitNativeRISCV_common.c.

◆ sljit_emit_icall()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_icall ( struct sljit_compiler * compiler,
sljit_s32 type,
sljit_s32 arg_types,
sljit_s32 src,
sljit_sw srcw )

Definition at line 2792 of file sljitNativeRISCV_common.c.

◆ sljit_emit_ijump()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_ijump ( struct sljit_compiler * compiler,
sljit_s32 type,
sljit_s32 src,
sljit_sw srcw )

Definition at line 2762 of file sljitNativeRISCV_common.c.

◆ sljit_emit_jump()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump * sljit_emit_jump ( struct sljit_compiler * compiler,
sljit_s32 type )

Definition at line 2611 of file sljitNativeRISCV_common.c.

◆ sljit_emit_label()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_label * sljit_emit_label ( struct sljit_compiler * compiler)

Definition at line 2541 of file sljitNativeRISCV_common.c.

◆ sljit_emit_mem()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem ( struct sljit_compiler * compiler,
sljit_s32 type,
sljit_s32 reg,
sljit_s32 mem,
sljit_sw memw )

Definition at line 3013 of file sljitNativeRISCV_common.c.

◆ sljit_emit_mov_addr()

SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump * sljit_emit_mov_addr ( struct sljit_compiler * compiler,
sljit_s32 dst,
sljit_sw dstw )

Definition at line 3091 of file sljitNativeRISCV_common.c.

◆ sljit_emit_op0()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0 ( struct sljit_compiler * compiler,
sljit_s32 op )

Definition at line 1848 of file sljitNativeRISCV_common.c.

◆ sljit_emit_op1()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1 ( struct sljit_compiler * compiler,
sljit_s32 op,
sljit_s32 dst,
sljit_sw dstw,
sljit_s32 src,
sljit_sw srcw )

Definition at line 1892 of file sljitNativeRISCV_common.c.

◆ sljit_emit_op2()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2 ( struct sljit_compiler * compiler,
sljit_s32 op,
sljit_s32 dst,
sljit_sw dstw,
sljit_s32 src1,
sljit_sw src1w,
sljit_s32 src2,
sljit_sw src2w )

Definition at line 1958 of file sljitNativeRISCV_common.c.

◆ sljit_emit_op2r()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2r ( struct sljit_compiler * compiler,
sljit_s32 op,
sljit_s32 dst_reg,
sljit_s32 src1,
sljit_sw src1w,
sljit_s32 src2,
sljit_sw src2w )

Definition at line 2038 of file sljitNativeRISCV_common.c.

◆ sljit_emit_op2u()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2u ( struct sljit_compiler * compiler,
sljit_s32 op,
sljit_s32 src1,
sljit_sw src1w,
sljit_s32 src2,
sljit_sw src2w )

Definition at line 2027 of file sljitNativeRISCV_common.c.

◆ sljit_emit_op_custom()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_custom ( struct sljit_compiler * compiler,
void * instruction,
sljit_u32 size )

Definition at line 2213 of file sljitNativeRISCV_common.c.

◆ sljit_emit_op_dst()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_dst ( struct sljit_compiler * compiler,
sljit_s32 op,
sljit_s32 dst,
sljit_sw dstw )

Definition at line 2172 of file sljitNativeRISCV_common.c.

◆ sljit_emit_op_flags()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags ( struct sljit_compiler * compiler,
sljit_s32 op,
sljit_s32 dst,
sljit_sw dstw,
sljit_s32 type )

Definition at line 2820 of file sljitNativeRISCV_common.c.

◆ sljit_emit_op_src()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_src ( struct sljit_compiler * compiler,
sljit_s32 op,
sljit_s32 src,
sljit_sw srcw )

Definition at line 2145 of file sljitNativeRISCV_common.c.

◆ sljit_emit_return_to()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return_to ( struct sljit_compiler * compiler,
sljit_s32 src,
sljit_sw srcw )

Definition at line 913 of file sljitNativeRISCV_common.c.

◆ sljit_emit_return_void()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return_void ( struct sljit_compiler * compiler)

Definition at line 904 of file sljitNativeRISCV_common.c.

◆ sljit_emit_select()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_select ( struct sljit_compiler * compiler,
sljit_s32 type,
sljit_s32 dst_reg,
sljit_s32 src1,
sljit_sw src1w,
sljit_s32 src2_reg )

Definition at line 2907 of file sljitNativeRISCV_common.c.

◆ sljit_emit_shift_into()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_shift_into ( struct sljit_compiler * compiler,
sljit_s32 op,
sljit_s32 dst_reg,
sljit_s32 src1_reg,
sljit_s32 src2_reg,
sljit_s32 src3,
sljit_sw src3w )

Definition at line 2062 of file sljitNativeRISCV_common.c.

◆ sljit_generate_code()

SLJIT_API_FUNC_ATTRIBUTE void * sljit_generate_code ( struct sljit_compiler * compiler,
sljit_s32 options,
void * exec_allocator_data )

Definition at line 499 of file sljitNativeRISCV_common.c.

◆ sljit_get_platform_name()

SLJIT_API_FUNC_ATTRIBUTE const char * sljit_get_platform_name ( void )

Definition at line 27 of file sljitNativeRISCV_common.c.

◆ sljit_get_register_index()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_get_register_index ( sljit_s32 type,
sljit_s32 reg )

Definition at line 2200 of file sljitNativeRISCV_common.c.

◆ sljit_has_cpu_feature()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature ( sljit_s32 feature_type)

Definition at line 637 of file sljitNativeRISCV_common.c.

◆ sljit_set_const()

SLJIT_API_FUNC_ATTRIBUTE void sljit_set_const ( sljit_uw addr,
sljit_sw new_constant,
sljit_sw executable_offset )

Definition at line 3118 of file sljitNativeRISCV_common.c.

◆ sljit_set_context()

SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_set_context ( struct sljit_compiler * compiler,
sljit_s32 options,
sljit_s32 arg_types,
sljit_s32 scratches,
sljit_s32 saveds,
sljit_s32 fscratches,
sljit_s32 fsaveds,
sljit_s32 local_size )

Definition at line 823 of file sljitNativeRISCV_common.c.