Data Structures | |
| struct | choice_point |
| struct | tabled_choice_point |
| struct | consumer_choice_point |
| struct | compl_susp_frame |
| struct | compl_susp_choice_point |
Defines | |
| #define | STANDARD_CP_FRAME 0 |
| #define | GENERATOR_CP_FRAME 1 |
| #define | CONSUMER_CP_FRAME 2 |
| #define | COMPL_SUSP_CP_FRAME 3 |
| #define | CP_SIZE (sizeof(struct choice_point)/sizeof(CPtr)) |
| #define | cp_pcreg(b) ((Choice)(b))->next_clause |
| #define | cp_ebreg(b) ((Choice)(b))->_ebreg |
| #define | cp_hreg(b) ((Choice)(b))->_hreg |
| #define | cp_trreg(b) ((Choice)(b))->_trreg |
| #define | cp_cpreg(b) ((Choice)(b))->_cpreg |
| #define | cp_ereg(b) ((Choice)(b))->_ereg |
| #define | cp_prevbreg(b) ((Choice)(b))->prev |
| #define | cp_pdreg(b) ((Choice)(b))->pdreg |
| #define | cp_ptcp(b) ((Choice)(b))->ptcp |
| #define | SAVE_PSC(b) |
| #define | save_choicepoint(t_breg, t_ereg, next_clause, prev) |
| #define | TCP_SIZE (sizeof(struct tabled_choice_point)/sizeof(CPtr)) |
| #define | tcp_pcreg(b) ((TChoice)(b))->next_clause |
| #define | tcp_ebreg(b) ((TChoice)(b))->_ebreg |
| #define | tcp_hreg(b) ((TChoice)(b))->_hreg |
| #define | tcp_trreg(b) ((TChoice)(b))->_trreg |
| #define | tcp_cpreg(b) ((TChoice)(b))->_cpreg |
| #define | tcp_ereg(b) ((TChoice)(b))->_ereg |
| #define | tcp_prevbreg(b) ((TChoice)(b))->prev |
| #define | tcp_pdreg(b) ((TChoice)(b))->pdreg |
| #define | tcp_ptcp(b) ((TChoice)(b))->ptcp |
| #define | tcp_subgoal_ptr(b) ((TChoice)(b))->subgoal_ptr |
| #define | SAVE_TPSC(b) |
| #define | tcp_template(b) ((TChoice)(b))->answer_template |
| #define | tcp_bfreg(b) ((TChoice)(b))->_bfreg |
| #define | tcp_hfreg(b) ((TChoice)(b))->_hfreg |
| #define | tcp_trfreg(b) ((TChoice)(b))->_trfreg |
| #define | tcp_efreg(b) ((TChoice)(b))->_efreg |
| #define | is_generator_choicepoint(b) |
| #define | perform_early_completion(ProdSF, ProdCPF) |
| #define | _SaveProducerCPF_common(TopCPS, Cont, pSF) |
| #define | _SaveProducerCPF_slg(TopCPS, Cont, pSF, AT) |
| #define | SaveProducerCPF(TopCPS, Cont, pSF, Arity, AT) _SaveProducerCPF_slg(TopCPS, Cont, pSF, AT) |
| #define | NLCP_SIZE (sizeof(struct consumer_choice_point)/sizeof(CPtr)) |
| #define | nlcp_pcreg(b) ((NLChoice)(b))->next_clause |
| #define | nlcp_ebreg(b) ((NLChoice)(b))->_ebreg |
| #define | nlcp_hreg(b) ((NLChoice)(b))->_hreg |
| #define | nlcp_trreg(b) ((NLChoice)(b))->_trreg |
| #define | nlcp_cpreg(b) ((NLChoice)(b))->_cpreg |
| #define | nlcp_ereg(b) ((NLChoice)(b))->_ereg |
| #define | nlcp_subgoal_ptr(b) ((NLChoice)(b))->subgoal_ptr |
| #define | nlcp_pdreg(b) ((NLChoice)(b))->pdreg |
| #define | nlcp_ptcp(b) ((NLChoice)(b))->ptcp |
| #define | nlcp_prevbreg(b) ((NLChoice)(b))->prev |
| #define | nlcp_prevlookup(b) ((NLChoice)(b))->prevlookup |
| #define | nlcp_trie_return(b) ((NLChoice)(b))->trie_return |
| #define | nlcp_template(b) ((NLChoice)(b))->answer_template |
| #define | is_consumer_choicepoint(b) (cp_pcreg(b) == (byte *) &answer_return_inst) |
| #define | SAVE_NLPSC(b) |
| #define | _SaveConsumerCPF_common(TopCPS, SF, PrevConsumer) |
| #define | SaveConsumerCPF(TopCPS, ConsSF, PrevConsumer, AT) |
| #define | CSF_SIZE (sizeof(struct compl_susp_frame)/sizeof(CPtr)) |
| #define | csf_pcreg(b) ((ComplSuspFrame)(b))->next_clause |
| #define | csf_ebreg(b) ((ComplSuspFrame)(b))->_ebreg |
| #define | csf_hreg(b) ((ComplSuspFrame)(b))->_hreg |
| #define | csf_trreg(b) ((ComplSuspFrame)(b))->_trreg |
| #define | csf_cpreg(b) ((ComplSuspFrame)(b))->_cpreg |
| #define | csf_ereg(b) ((ComplSuspFrame)(b))->_ereg |
| #define | csf_pdreg(b) ((ComplSuspFrame)(b))->pdreg |
| #define | csf_ptcp(b) ((ComplSuspFrame)(b))->ptcp |
| #define | csf_subgoal_ptr(b) ((ComplSuspFrame)(b))->subgoal_ptr |
| #define | csf_prevcsf(b) ((ComplSuspFrame)(b))->prevcsf |
| #define | csf_neg_loop(b) ((ComplSuspFrame)(b))->neg_loop |
| #define | SAVE_CSFPSC(b) |
| #define | is_compl_susp_frame(b) |
| #define | save_compl_susp_frame(t_breg, t_ereg, subg, t_ptcp, CPREG) |
| #define | COMPL_SUSP_CP_SIZE (sizeof(struct compl_susp_choice_point)/sizeof(CPtr)) |
| #define | cs_pcreg(b) ((ComplSuspChoice)(b))->next_clause |
| #define | cs_ebreg(b) ((ComplSuspChoice)(b))->_ebreg |
| #define | cs_hreg(b) ((ComplSuspChoice)(b))->_hreg |
| #define | cs_compsuspptr(b) ((ComplSuspChoice)(b))->compsuspptr |
| #define | cs_prevbreg(b) ((ComplSuspChoice)(b))->prev |
| #define | SAVE_CSCP_EXTRA(t_breg) |
| #define | SAVE_CSCPPSC(b) |
| #define | save_compl_susp_cp(t_breg, prev, compsuspptr) |
| #define | save_registers(t_breg, arity, regbase) |
| #define | restore_registers(t_breg, arity, regbase) |
| #define | table_restore_registers(t_breg, arity, regbase) |
| #define | save_find_locx(t_ereg) |
| #define | restore_some_wamregs(t_breg, t_ereg) |
Typedefs | |
| typedef choice_point * | Choice |
| typedef tabled_choice_point * | TChoice |
| typedef consumer_choice_point * | NLChoice |
| typedef compl_susp_frame * | ComplSuspFrame |
| typedef compl_susp_choice_point * | ComplSuspChoice |
|
|
Value: { \
TopCPS -= NLCP_SIZE; \
nlcp_trie_return(TopCPS) = subg_ans_list_ptr(SF); \
nlcp_subgoal_ptr(TopCPS) = (CPtr)SF; \
nlcp_prevlookup(TopCPS) = PrevConsumer; \
nlcp_ptcp(TopCPS) = ptcpreg; \
nlcp_pdreg(TopCPS) = delayreg; \
nlcp_prevbreg(TopCPS) = breg; \
nlcp_ereg(TopCPS) = ereg; \
nlcp_cpreg(TopCPS) = cpreg; \
nlcp_trreg(TopCPS) = trreg; \
SAVE_NLPSC(TopCPS); \
nlcp_hreg(TopCPS) = hreg; \
nlcp_ebreg(TopCPS) = ebreg; \
nlcp_pcreg(TopCPS) = (pb) &answer_return_inst; \
}
|
|
|
Value: { \
TopCPS -= TCP_SIZE; \
tcp_ptcp(TopCPS) = ptcpreg; \
tcp_pdreg(TopCPS) = delayreg; \
tcp_ereg(TopCPS) = ereg; \
tcp_cpreg(TopCPS) = cpreg; \
tcp_trreg(TopCPS) = trreg; \
tcp_hreg(TopCPS) = hreg; \
tcp_ebreg(TopCPS) = ebreg; \
tcp_subgoal_ptr(TopCPS) = (CPtr)pSF; \
SAVE_TPSC(TopCPS); \
tcp_prevbreg(TopCPS) = breg; \
tcp_pcreg(TopCPS) = Cont; \
}
|
|
|
Value: { \
_SaveProducerCPF_common(TopCPS, Cont, pSF); \
tcp_bfreg(TopCPS) = bfreg; \
tcp_efreg(TopCPS) = efreg; \
tcp_trfreg(TopCPS) = trfreg; \
tcp_hfreg(TopCPS) = hfreg; \
tcp_template(TopCPS) = AT; \
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: ((cp_pcreg(b) == (byte *) &resume_compl_suspension_inst) || \ (cp_pcreg(b) == (byte *) &resume_compl_suspension_inst2)) |
|
|
|
|
|
Value: ((cp_pcreg(b) == (byte *) &check_complete_inst) || \ (cell_opcode(cp_pcreg(b)) == tabletrust) || \ (cell_opcode(cp_pcreg(b)) == tableretry)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: if (tcp_pcreg(ProdCPF) != (byte *) &answer_return_inst) \ tcp_pcreg(ProdCPF) = (byte *) &check_complete_inst; \ mark_as_completed(ProdSF) |
|
|
Value: |
|
|
Value: |
|
|
Value: |
|
|
Value: t_breg -= COMPL_SUSP_CP_SIZE; \ cs_prevbreg(t_breg) = prev; \ SAVE_CSCP_EXTRA(t_breg); \ SAVE_CSCPPSC(t_breg); \ cs_compsuspptr(t_breg) = compsuspptr;\ cs_hreg(t_breg) = hreg; \ cs_ebreg(t_breg) = ebreg; \ cs_pcreg(t_breg) = (pb) &resume_compl_suspension_inst2 |
|
|
Value: t_breg -= CSF_SIZE; \ csf_neg_loop(t_breg) = FALSE; \ csf_prevcsf(t_breg) = subg_compl_susp_ptr(subg); \ csf_ptcp(t_breg) = t_ptcp; \ SAVE_CSFPSC(t_breg); \ csf_pdreg(t_breg) = delayreg; \ csf_subgoal_ptr(t_breg) = subg; \ csf_ereg(t_breg) = t_ereg; \ csf_cpreg(t_breg) = CPREG; \ csf_trreg(t_breg) = trreg; \ csf_hreg(t_breg) = hreg; \ csf_ebreg(t_breg) = ebreg; \ csf_pcreg(t_breg) = (pb) &resume_compl_suspension_inst |
|
|
|
|
|
|
|
|
|
|
|
Value: if (efreg_on_top(t_ereg)) ebreg = efreg;\ else if (ereg_on_top(t_ereg)) ebreg = t_ereg - *(cpreg-2*sizeof(Cell)+3)+1; |
|
|
|
|
|
|
|
|
Value: |
|
|
|
|
|
Value: _SaveConsumerCPF_common(TopCPS,ConsSF,PrevConsumer); \ nlcp_template(TopCPS) = AT |
|
|
|
|
|
|
|
|
Value: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.4.5