![]() |
GNU PROLOG with UTF8 support
|
Data Structures | |
union | BCWord |
union | C64To32 |
Macros | |
#define | OBJ_INIT Byte_Code_Initializer |
#define | BC_SUPP_FILE |
#define | MAX_OP 100 |
#define | BC_BLOCK_SIZE 1024 |
#define | ERR_UNKNOWN_INSTRUCTION "bc_supp: Unknown WAM instruction: %s" |
#define | BC_EMULATE_CONT X1_2462635F656D756C6174655F636F6E74 |
#define | CALL_INTERNAL_WITH_CUT X1_2463616C6C5F696E7465726E616C5F776974685F637574 |
#define | BC_Op(w) ((w).t1.code_op) |
#define | BC1_X0(w) ((w).t1.i8) |
#define | BC1_Arity(w) ((w).t1.i16) |
#define | BC2_Arity(w) ((w).t2.i24) |
#define | BC1_XY(w) ((w).t1.i16) |
#define | BC2_XY(w) ((w).t2.i24) |
#define | BC1_Atom(w) ((w).t1.i16) |
#define | BC2_Atom(w) ((w).t2.i24) |
#define | BC1_Int(w) ((w).t1.i16) |
#define | BC2_Int(w) ((w).t2.i24) |
#define | Fit_In_16bits(n) ((PlULong) (n) < (1 << 16)) |
#define | Fit_In_24bits(n) ((PlULong) (n) < (1 << 24)) |
#define | Op_In_Tbl(str, op) BC_Op(*p) = op; BC2_Atom(*p) = Pl_Create_Atom(str); p++ |
#define | ASSEMBLE_INST(bc_sp, op, nb_word, w, w1, w2, w3) |
Functions | |
static int | Find_Inst_Code_Op (int inst) |
static int | Compar_Inst_Code_Op (BCWord *w1, BCWord *w2) |
static int | BC_Arg_X_Or_Y (WamWord arg_word, int *op) |
static int | BC_Arg_Func_Arity (WamWord arg_word, int *arity) |
WamCont | Pl_BC_Emulate_Pred (int func, DynPInf *dyn) |
static WamCont | BC_Emulate_Pred_Alt (DynCInf *clause, WamWord *w) |
static WamCont | BC_Emulate_Clause (DynCInf *clause) |
static WamCont | BC_Emulate_Byte_Code (BCWord *bc) |
static void | Prep_Debug_Call (int func, int arity, int caller_func, int caller_arity) |
Prolog_Prototype (BC_EMULATE_CONT, 0) | |
Prolog_Prototype (CALL_INTERNAL_WITH_CUT, 3) | |
static void | Byte_Code_Initializer (void) |
void | Pl_BC_Start_Pred_8 (WamWord func_word, WamWord arity_word, WamWord pl_file_word, WamWord pl_line_word, WamWord sta_dyn_word, WamWord pub_priv_word, WamWord mono_multi_word, WamWord us_blp_bfd_word) |
void | Pl_BC_Start_Emit_0 (void) |
void | Pl_BC_Stop_Emit_0 (void) |
void | Pl_BC_Emit_Inst_1 (WamWord inst_word) |
void | Pl_BC_Emit_Inst_Execute_Native (int func, int arity, PlLong *codep) |
WamCont | Pl_BC_Call_Terminal_Pred_3 (WamWord pred_word, WamWord call_info_word, WamWord first_call_word) |
WamCont | Pl_BC_Emulate_Cont_0 (void) |
Variables | |
static BCWord | op_tbl [MAX_OP] |
static int | nb_op |
static BCWord * | bc |
static BCWord * | bc_sp |
static int | bc_nb_block |
static int | atom_dynamic |
static int | atom_public |
static int | atom_multifile |
static int | atom_built_in |
static int | atom_built_in_fd |
static int | atom_fail |
static int | caller_func |
static int | caller_arity |
static int | glob_func |
static DynPInf * | glob_dyn |
static Bool | debug_call |
WamCont | pl_debug_call_code |
#define ASSEMBLE_INST | ( | bc_sp, | |
op, | |||
nb_word, | |||
w, | |||
w1, | |||
w2, | |||
w3 | |||
) |
#define BC1_Arity | ( | w | ) | ((w).t1.i16) |
#define BC1_Atom | ( | w | ) | ((w).t1.i16) |
#define BC1_Int | ( | w | ) | ((w).t1.i16) |
#define BC1_X0 | ( | w | ) | ((w).t1.i8) |
#define BC1_XY | ( | w | ) | ((w).t1.i16) |
#define BC2_Arity | ( | w | ) | ((w).t2.i24) |
#define BC2_Atom | ( | w | ) | ((w).t2.i24) |
#define BC2_Int | ( | w | ) | ((w).t2.i24) |
#define BC2_XY | ( | w | ) | ((w).t2.i24) |
#define BC_BLOCK_SIZE 1024 |
#define BC_EMULATE_CONT X1_2462635F656D756C6174655F636F6E74 |
#define BC_Op | ( | w | ) | ((w).t1.code_op) |
#define BC_SUPP_FILE |
#define CALL_INTERNAL_WITH_CUT X1_2463616C6C5F696E7465726E616C5F776974685F637574 |
#define ERR_UNKNOWN_INSTRUCTION "bc_supp: Unknown WAM instruction: %s" |
#define Fit_In_16bits | ( | n | ) | ((PlULong) (n) < (1 << 16)) |
#define Fit_In_24bits | ( | n | ) | ((PlULong) (n) < (1 << 24)) |
#define MAX_OP 100 |
#define OBJ_INIT Byte_Code_Initializer |
#define Op_In_Tbl | ( | str, | |
op | |||
) | BC_Op(*p) = op; BC2_Atom(*p) = Pl_Create_Atom(str); p++ |
enum BCCodOp |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
WamCont Pl_BC_Call_Terminal_Pred_3 | ( | WamWord | pred_word, |
WamWord | call_info_word, | ||
WamWord | first_call_word | ||
) |
void Pl_BC_Emit_Inst_1 | ( | WamWord | inst_word | ) |
void Pl_BC_Emit_Inst_Execute_Native | ( | int | func, |
int | arity, | ||
PlLong * | codep | ||
) |
WamCont Pl_BC_Emulate_Cont_0 | ( | void | ) |
WamCont Pl_BC_Emulate_Pred | ( | int | func, |
DynPInf * | dyn | ||
) |
void Pl_BC_Start_Emit_0 | ( | void | ) |
void Pl_BC_Start_Pred_8 | ( | WamWord | func_word, |
WamWord | arity_word, | ||
WamWord | pl_file_word, | ||
WamWord | pl_line_word, | ||
WamWord | sta_dyn_word, | ||
WamWord | pub_priv_word, | ||
WamWord | mono_multi_word, | ||
WamWord | us_blp_bfd_word | ||
) |
void Pl_BC_Stop_Emit_0 | ( | void | ) |
|
static |
Prolog_Prototype | ( | BC_EMULATE_CONT | , |
0 | |||
) |
Prolog_Prototype | ( | CALL_INTERNAL_WITH_CUT | , |
3 | |||
) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
WamCont pl_debug_call_code |