Ruby
3.1.3p185 (2022-11-24 revision 1a6b16756e0ba6b95ab71a441357ed5484e33498)
yjit_codegen.h
1
#ifndef YJIT_CODEGEN_H
2
#define YJIT_CODEGEN_H 1
3
4
typedef
enum
codegen_status {
5
YJIT_END_BLOCK,
6
YJIT_KEEP_COMPILING,
7
YJIT_CANT_COMPILE
8
} codegen_status_t;
9
10
// Code generation function signature
11
typedef
codegen_status_t (*codegen_fn)(
jitstate_t
*jit,
ctx_t
*ctx,
codeblock_t
*cb);
12
13
static
void
jit_ensure_block_entry_exit(
jitstate_t
*jit);
14
15
static
uint8_t *yjit_entry_prologue(
codeblock_t
*cb,
const
rb_iseq_t
*iseq);
16
17
static
block_t
*gen_single_block(
blockid_t
blockid,
const
ctx_t
*start_ctx,
rb_execution_context_t
*ec);
18
19
static
void
gen_code_for_exit_from_stub(
void
);
20
21
static
void
yjit_init_codegen(
void
);
22
23
#endif
// #ifndef YJIT_CODEGEN_H
BlockId
Definition:
yjit_core.h:162
CodeBlock
Definition:
yjit_asm.h:27
JITState
Definition:
yjit_core.h:273
rb_execution_context_struct
Definition:
rb_mjit_min_header-3.1.3.h:7665
rb_iseq_struct
Definition:
rb_mjit_min_header-3.1.3.h:7427
yjit_block_version
Basic block version Represents a portion of an iseq compiled with a given context Note: care must be ...
Definition:
yjit_core.h:237
yjit_context
Code generation context Contains information we can use to optimize code.
Definition:
yjit_core.h:134
Generated by
1.9.2