#include "xsb_config.h"
#include "xsb_debug.h"
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>
#include "auxlry.h"
#include "cell_xsb.h"
#include "register.h"
#include "error_xsb.h"
#include "inst_xsb.h"
#include "psc_xsb.h"
#include "deref.h"
#include "memory_xsb.h"
#include "heap_xsb.h"
#include "sig_xsb.h"
#include "context.h"
#include "varstring_xsb.h"
#include "emudef.h"
#include "loader_xsb.h"
#include "binding.h"
#include "flags_xsb.h"
#include "trie_internals.h"
#include "choice.h"
#include "sw_envs.h"
#include "macro_xsb.h"
#include "tables.h"
#include "subinst.h"
#include "scc_xsb.h"
#include "subp.h"
#include "tr_utils.h"
#include "cut_xsb.h"
#include "export.h"
#include "orient_xsb.h"
#include "io_builtins_xsb.h"
#include "unify_xsb.h"
#include "emuloop_aux.h"
#include "remove_unf.h"
#include "thread_xsb.h"
#include "deadlock.h"
#include "rw_lock.h"
#include "debug_xsb.h"
#include "hash_xsb.h"
#include "struct_manager.h"
#include "builtin.h"
#include "tr_delay.h"
#include "tr_code_xsb_i.h"
#include "schedrev_xsb_i.h"
#include "wfs_xsb_i.h"
#include "complete_local.h"
#include "slginsts_xsb_i.h"
#include "tc_insts_xsb_i.h"
Defines | |
#define | XSB_Debug_Instr |
#define | XSB_Profile_Instr |
#define | handle_xsb_profile_interrupt |
#define | Def1op |
#define | Def1fop |
#define | Def2ops |
#define | Def2fops |
#define | Def3ops |
#define | DefOps13 |
#define | DefGlobOps register Cell op1,op2; register CPtr op3; float fop2; |
#define | XSB_Next_Instr() goto contcase |
#define | XSB_End_Instr() goto contcase; } |
#define | XSB_Start_Instr_Chained(Instr, Label) case Instr: |
#define | XSB_Start_Instr(Instr, Label) case Instr: { |
#define | get_axx (lpcreg[1]) |
#define | get_vxx (ereg-(Cell)lpcreg[1]) |
#define | get_rxx (rreg+lpcreg[1]) |
#define | get_xax (lpcreg[2]) |
#define | get_xvx (ereg-(Cell)lpcreg[2]) |
#define | get_xrx (rreg+lpcreg[2]) |
#define | get_xxa (lpcreg[3]) |
#define | get_xxv (ereg-(Cell)lpcreg[3]) |
#define | get_xxr (rreg+lpcreg[3]) |
#define | get_xxxl (*(CPtr)(lpcreg+sizeof(Cell))) |
#define | get_xxxs (*(CPtr)(lpcreg+sizeof(Cell))) |
#define | get_xxxc (*(CPtr)(lpcreg+sizeof(Cell))) |
#define | get_xxxn (*(CPtr)(lpcreg+sizeof(Cell))) |
#define | get_xxxg (*(CPtr)(lpcreg+sizeof(Cell))) |
#define | get_xxxi (*(CPtr)(lpcreg+sizeof(Cell))) |
#define | get_xxxf (*(float *)(lpcreg+sizeof(Cell))) |
#define | get_xxxxi (*(CPtr)(lpcreg+sizeof(Cell)*2)) |
#define | get_xxxxl (*(CPtr)(lpcreg+sizeof(Cell)*2)) |
#define | Op1(Expr) op1 = (Cell)Expr |
#define | Op2(Expr) op2 = (Cell)Expr |
#define | Op2f(Expr) fop2 = (float)Expr |
#define | Op3(Expr) op3 = (CPtr)Expr |
#define | Register(Expr) (cell(Expr)) |
#define | Variable(Expr) (cell(Expr)) |
#define | size_none 0 |
#define | size_xxx 1 |
#define | size_xxxX 2 |
#define | size_xxxXX 3 |
#define | ADVANCE_PC(InstrSize) (lpcreg += InstrSize*sizeof(Cell)) |
#define | WRITE 1 |
#define | READFLAG 0 |
#define | POST_LPCREG_DECL |
#define | Fail1 lpcreg = cp_pcreg(breg) |
#define | restore_trail_condition_registers(breg) |
#define | struct_hash_value(op1) |
#define | ARITHPROC(OP, STROP) |
#define | jump_cond_fail(Condition) if (Condition) {ADVANCE_PC(size_xxxX);} else lpcreg = (byte *)get_xxxl |
Functions | |
void | bld_boxedfloat (CTXTdeclc CPtr addr, Float value) |
Float | make_float_from_ints (UInteger high, UInteger low) |
int | builtin_call (CTXTdeclc byte) |
int | unifunc_call (CTXTdeclc int, CPtr) |
Pair | build_call (CTXTdeclc Psc) |
int | is_proper_list (Cell term) |
int | is_most_general_term (Cell term) |
void | log_prog_ctr (byte *) |
int | emuloop (CTXTdeclc byte *startaddr) |
DllExport int call_conv | xsb (CTXTdeclc int flag, int argc, char *argv[]) |
Variables | |
CPtr | ans_var_pos_reg |
Cell | builtin_table [BUILTIN_TBL_SZ][2] |
long | prof_flag |
xsbBool | neg_delay |
int | xwammode |
int | level_num |
char * | xsb_default_segfault_msg |
jmp_buf | xsb_abort_fallback_environment |
char * | xsb_segfault_message |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: if (asynint_val && (asynint_val & PROFINT_MARK)) { \ asynint_val &= ~PROFINT_MARK; \ log_prog_ctr(lpcreg); \ } \ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: |
|
|
|
|
|
|
|
|
|
Value: (isboxedinteger(op1)?boxedint_val(op1): \ (isboxedfloat(op1)? \ int_val(cell(clref_val(op1)+1)) ^ int_val(cell(clref_val(op1)+2)) ^ int_val(cell(clref_val(op1)+3)): \ (Cell)get_str_psc(op1))) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!isinteger(op1) || !isinteger(op2)) { arithmetic_abort(CTXTc op2, "'\\/'", op1); } else { bld_oint(op3, int_val(op2) | int_val(op1)); } if (!isinteger(op1) || !isinteger(op2)) { arithmetic_abort(CTXTc op2, "'/\\'", op1); } else { bld_oint(op3, int_val(op2) & int_val(op1)); } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Initial value:
"\n++Memory violation occurred during evaluation.\n++Please report this problem using the XSB bug tracking system accessible from\n++\t http://sourceforge.net/projects/xsb\n++Please supply the steps necessary to reproduce the bug.\n"
|
|
|
|
|