YAP 7.1.0
absmi_insts.h
1/*****************************************************************
2 * INSTRUCTIONS *
3 *****************************************************************/
4
5#ifdef INDENT_CODE
6{
7 {
8 {
9#endif /* INDENT_CODE */
10
11 BOp(Ystop, l);
12 //LOCAL_CBorder = 0;
13 SET_ASP(YREG, E_CB);
14 /* make sure ASP is initialized */
15 saveregs();
16
17#if PUSH_REGS
18 restore_absmi_regs(old_regs);
19#endif
20#if BP_FREE
21 P1REG = PCBACKUP;
22#endif
23 saveregs();
24 //LOCAL_CBorder = 0;
25 return 1;
26 ENDBOp();
27
28 BOp(Nstop, e);
29 SET_ASP(YREG, E_CB);
30 saveregs();
31#if PUSH_REGS
32 restore_absmi_regs(old_regs);
33#endif
34#if BP_FREE
35 P1REG = PCBACKUP;
36#endif
37 return 0;
38 ENDBOp();
39
40/************************************************************************\
41 * Native Code Execution *
42\************************************************************************/
43
44#if YAP_JIT
45 static void *OpAddress_JIT[] = {
46#define OPCODE(OP, TYPE) &&_##OP
47#include "YapOpcodes.h"
48#undef OPCODE
49 };
50
51 /* native_me */
52 BOp(jit_handler, J);
53 if (!PREG->y_u.J.jh->fi.bcst.c)
54 PREG->y_u.J.jh->mf.isground = IsGround(PREG);
55 PREG->y_u.J.jh->fi.bcst.c++;
56
57 /* Did PREG reach threshold value to become critical? */
58 if (PREG->y_u.J.jh->fi.bcst.c ==
59 (COUNT)(ExpEnv.config_struc.frequency_bound *
60 (ExpEnv.config_struc.profiling_startp)) &&
61 !PREG->y_u.J.jh->mf.isground) {
62#if YAP_DBG_PREDS
63 if (ExpEnv.debug_struc.pprint_me.criticals != 0 &&
64 ExpEnv.debug_struc.pprint_me.criticals != 0x1) {
65 fprintf(stderr, "%s:%d\n", __FILE__, __LINE__);
66 fprintf(stderr, "%s", (char *)ExpEnv.debug_struc.pprint_me.criticals);
67 }
68#endif
69 traced_absmi();
70 }
71#if YAP_DBG_PREDS
72 print_main_when_head(PREG, ON_INTERPRETER);
73#endif
74 PREG = NEXTOP(PREG, J);
75 JMPNext();
76 ENDBOp();
77#endif
78
79#include "control_absmi_insts.h"
80#include "cp_absmi_insts.h"
81#include "fail_absmi_insts.h"
82#include "fli_absmi_insts.h"
83#include "index_absmi_insts.h"
84#include "lu_absmi_insts.h"
85#include "meta_absmi_insts.h"
86#include "or_absmi_insts.h"
87#include "prim_absmi_insts.h"
88#include "type_absmi_insts.h"
89#include "unify_absmi_insts.h"