2001-04-09 20:54:03 +01:00
|
|
|
/*************************************************************************
|
|
|
|
* *
|
|
|
|
* YAP Prolog *
|
|
|
|
* *
|
|
|
|
* Yap Prolog was developed at NCCUP - Universidade do Porto *
|
|
|
|
* *
|
|
|
|
* Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997 *
|
|
|
|
* *
|
|
|
|
**************************************************************************
|
|
|
|
* *
|
|
|
|
* File: YapOpcodes.h *
|
|
|
|
* comments: Central Table with all YAP opcodes *
|
|
|
|
* *
|
2008-03-25 22:03:14 +00:00
|
|
|
* Last rev: $Date: 2008-03-25 22:03:13 $ *
|
2004-03-19 11:35:42 +00:00
|
|
|
* $Log: not supported by cvs2svn $
|
2008-03-25 22:03:14 +00:00
|
|
|
* Revision 1.43 2007/11/26 23:43:09 vsc
|
|
|
|
* fixes to support threads and assert correctly, even if inefficiently.
|
|
|
|
*
|
2007-11-26 23:43:10 +00:00
|
|
|
* Revision 1.42 2007/11/07 09:25:27 vsc
|
|
|
|
* speedup meta-calls
|
|
|
|
*
|
2007-11-07 09:25:27 +00:00
|
|
|
* Revision 1.41 2007/11/06 17:02:12 vsc
|
|
|
|
* compile ground terms away.
|
|
|
|
*
|
2007-11-06 17:02:13 +00:00
|
|
|
* Revision 1.40 2006/10/10 14:08:17 vsc
|
|
|
|
* small fixes on threaded implementation.
|
|
|
|
*
|
2006-10-10 15:08:17 +01:00
|
|
|
* Revision 1.39 2006/09/20 20:03:51 vsc
|
|
|
|
* improve indexing on floats
|
|
|
|
* fix sending large lists to DB
|
|
|
|
*
|
2006-09-20 21:03:51 +01:00
|
|
|
* Revision 1.38 2006/04/27 14:13:24 rslopes
|
|
|
|
* *** empty log message ***
|
|
|
|
*
|
2006-04-27 15:13:24 +01:00
|
|
|
* Revision 1.37 2006/03/24 16:34:21 rslopes
|
|
|
|
* New update to BEAM engine.
|
|
|
|
* BEAM now uses YAP Indexing (JITI)
|
|
|
|
*
|
2006-03-24 16:34:21 +00:00
|
|
|
* Revision 1.36 2005/12/17 03:25:39 vsc
|
|
|
|
* major changes to support online event-based profiling
|
|
|
|
* improve error discovery and restart on scanner.
|
|
|
|
*
|
2005-12-17 03:25:39 +00:00
|
|
|
* Revision 1.35 2005/11/18 18:50:34 tiagosoares
|
|
|
|
* support for executing c code when a cut occurs
|
|
|
|
*
|
2005-11-18 18:52:41 +00:00
|
|
|
* Revision 1.34 2005/09/08 21:55:48 rslopes
|
|
|
|
* BEAM for YAP update...
|
|
|
|
*
|
2005-09-08 22:59:58 +01:00
|
|
|
* Revision 1.33 2005/08/01 15:40:38 ricroc
|
|
|
|
* TABLING NEW: better support for incomplete tabling
|
|
|
|
*
|
2005-08-01 16:40:39 +01:00
|
|
|
* Revision 1.32 2005/07/06 19:34:11 ricroc
|
|
|
|
* TABLING: answers for completed calls can now be obtained by loading (new option) or executing (default) them from the trie data structure.
|
|
|
|
*
|
2005-07-06 20:34:12 +01:00
|
|
|
* Revision 1.31 2005/07/06 15:10:15 vsc
|
|
|
|
* improvements to compiler: merged instructions and fixes for ->
|
|
|
|
*
|
2005-07-06 16:10:18 +01:00
|
|
|
* Revision 1.30 2005/06/04 07:26:43 ricroc
|
|
|
|
* long int support for tabling
|
|
|
|
*
|
2005-06-04 08:28:24 +01:00
|
|
|
* Revision 1.29 2005/06/03 08:18:25 ricroc
|
|
|
|
* float support for tabling
|
|
|
|
*
|
2005-06-03 09:19:18 +01:00
|
|
|
* Revision 1.28 2005/06/01 20:25:23 vsc
|
|
|
|
* == and \= should not need a choice-point in ->
|
|
|
|
*
|
2005-06-01 21:25:23 +01:00
|
|
|
* Revision 1.27 2005/06/01 14:02:52 vsc
|
|
|
|
* get_rid of try_me?, retry_me? and trust_me? instructions: they are not
|
|
|
|
* significantly used nowadays.
|
|
|
|
*
|
2005-06-01 15:02:52 +01:00
|
|
|
* Revision 1.26 2005/04/10 04:01:13 vsc
|
|
|
|
* bug fixes, I hope!
|
|
|
|
*
|
2005-04-10 05:01:15 +01:00
|
|
|
* Revision 1.25 2004/10/26 20:16:04 vsc
|
|
|
|
* More bug fixes for overflow handling
|
|
|
|
*
|
2004-10-26 21:16:18 +01:00
|
|
|
* Revision 1.24 2004/09/27 20:45:04 vsc
|
|
|
|
* Mega clauses
|
|
|
|
* Fixes to sizeof(expand_clauses) which was being overestimated
|
|
|
|
* Fixes to profiling+indexing
|
|
|
|
* Fixes to reallocation of memory after restoring
|
|
|
|
* Make sure all clauses, even for C, end in _Ystop
|
|
|
|
* Don't reuse space for Streams
|
|
|
|
* Fix Stream_F on StreaNo+1
|
|
|
|
*
|
2004-09-27 21:45:04 +01:00
|
|
|
* Revision 1.23 2004/03/31 01:03:10 vsc
|
|
|
|
* support expand group of clauses
|
|
|
|
*
|
2004-03-31 02:03:10 +01:00
|
|
|
* Revision 1.22 2004/03/19 11:35:42 vsc
|
|
|
|
* trim_trail for default machine
|
|
|
|
* be more aggressive about try-retry-trust chains.
|
|
|
|
* - handle cases where block starts with a wait
|
|
|
|
* - don't use _killed instructions, just let the thing rot by itself.
|
|
|
|
*
|
2004-03-19 11:35:42 +00:00
|
|
|
* Revision 1.21 2004/03/10 14:59:55 vsc
|
|
|
|
* optimise -> for type tests
|
|
|
|
* *
|
2004-03-10 14:59:55 +00:00
|
|
|
* *
|
2001-04-09 20:54:03 +01:00
|
|
|
*************************************************************************/
|
2005-12-17 03:25:39 +00:00
|
|
|
OPCODE(Ystop ,l),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(Nstop ,e),
|
2005-12-17 03:25:39 +00:00
|
|
|
OPCODE(execute ,pp),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(call ,sla),
|
2005-12-17 03:25:39 +00:00
|
|
|
OPCODE(procceed ,p),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(allocate ,e),
|
|
|
|
OPCODE(deallocate ,e),
|
|
|
|
OPCODE(op_fail ,e),
|
|
|
|
#ifdef YAPOR
|
|
|
|
OPCODE(getwork_first_time ,e),
|
|
|
|
OPCODE(getwork ,ld),
|
|
|
|
OPCODE(getwork_seq ,ld),
|
|
|
|
OPCODE(sync ,ld),
|
|
|
|
#endif /* YAPOR */
|
2005-06-03 09:19:18 +01:00
|
|
|
#ifdef TABLING_INNER_CUTS
|
|
|
|
OPCODE(clause_with_cut ,e),
|
|
|
|
#endif /* TABLING_INNER_CUTS */
|
2001-04-09 20:54:03 +01:00
|
|
|
#ifdef TABLING
|
2005-08-01 16:40:39 +01:00
|
|
|
OPCODE(table_load_answer ,ld),
|
|
|
|
OPCODE(table_try_answer ,ld),
|
2003-12-18 16:38:40 +00:00
|
|
|
OPCODE(table_try_single ,ld),
|
2005-06-03 09:19:18 +01:00
|
|
|
OPCODE(table_try_me ,ld),
|
2003-12-18 16:38:40 +00:00
|
|
|
OPCODE(table_try ,ld),
|
2005-06-03 09:19:18 +01:00
|
|
|
OPCODE(table_retry_me ,ld),
|
2003-12-18 16:38:40 +00:00
|
|
|
OPCODE(table_retry ,ld),
|
2005-06-03 09:19:18 +01:00
|
|
|
OPCODE(table_trust_me ,ld),
|
2003-12-18 16:38:40 +00:00
|
|
|
OPCODE(table_trust ,ld),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(table_new_answer ,s),
|
|
|
|
OPCODE(table_answer_resolution ,ld),
|
|
|
|
OPCODE(table_completion ,ld),
|
|
|
|
|
2005-07-06 20:34:12 +01:00
|
|
|
OPCODE(trie_do_null ,e),
|
|
|
|
OPCODE(trie_trust_null ,e),
|
|
|
|
OPCODE(trie_try_null ,e),
|
|
|
|
OPCODE(trie_retry_null ,e),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(trie_do_var ,e),
|
|
|
|
OPCODE(trie_trust_var ,e),
|
|
|
|
OPCODE(trie_try_var ,e),
|
|
|
|
OPCODE(trie_retry_var ,e),
|
|
|
|
OPCODE(trie_do_val ,e),
|
|
|
|
OPCODE(trie_trust_val ,e),
|
|
|
|
OPCODE(trie_try_val ,e),
|
|
|
|
OPCODE(trie_retry_val ,e),
|
|
|
|
OPCODE(trie_do_atom ,e),
|
|
|
|
OPCODE(trie_trust_atom ,e),
|
|
|
|
OPCODE(trie_try_atom ,e),
|
|
|
|
OPCODE(trie_retry_atom ,e),
|
|
|
|
OPCODE(trie_do_list ,e),
|
|
|
|
OPCODE(trie_trust_list ,e),
|
|
|
|
OPCODE(trie_try_list ,e),
|
|
|
|
OPCODE(trie_retry_list ,e),
|
|
|
|
OPCODE(trie_do_struct ,e),
|
|
|
|
OPCODE(trie_trust_struct ,e),
|
|
|
|
OPCODE(trie_try_struct ,e),
|
|
|
|
OPCODE(trie_retry_struct ,e),
|
2005-07-06 20:34:12 +01:00
|
|
|
OPCODE(trie_do_extension ,e),
|
|
|
|
OPCODE(trie_trust_extension ,e),
|
|
|
|
OPCODE(trie_try_extension ,e),
|
|
|
|
OPCODE(trie_retry_extension ,e),
|
2005-06-03 09:19:18 +01:00
|
|
|
OPCODE(trie_do_float ,e),
|
|
|
|
OPCODE(trie_trust_float ,e),
|
|
|
|
OPCODE(trie_try_float ,e),
|
|
|
|
OPCODE(trie_retry_float ,e),
|
2005-06-04 08:28:24 +01:00
|
|
|
OPCODE(trie_do_long ,e),
|
|
|
|
OPCODE(trie_trust_long ,e),
|
|
|
|
OPCODE(trie_try_long ,e),
|
|
|
|
OPCODE(trie_retry_long ,e),
|
2001-04-09 20:54:03 +01:00
|
|
|
#endif /* TABLING */
|
|
|
|
OPCODE(try_me ,ld),
|
|
|
|
OPCODE(retry_me ,ld),
|
|
|
|
OPCODE(trust_me ,ld),
|
|
|
|
OPCODE(try_and_mark ,ld),
|
|
|
|
OPCODE(retry_and_mark ,ld),
|
|
|
|
OPCODE(try_c ,lds),
|
2005-11-18 18:52:41 +00:00
|
|
|
OPCODE(retry_c ,lds),
|
|
|
|
#ifdef CUT_C
|
|
|
|
OPCODE(cut_c ,lds),
|
|
|
|
#endif
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(try_userc ,lds),
|
|
|
|
OPCODE(retry_userc ,lds),
|
2005-11-18 18:52:41 +00:00
|
|
|
#ifdef CUT_C
|
|
|
|
OPCODE(cut_userc ,lds),
|
|
|
|
#endif
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(cut ,e),
|
|
|
|
OPCODE(get_x_var ,xx),
|
|
|
|
OPCODE(get_y_var ,yx),
|
|
|
|
OPCODE(get_x_val ,xx),
|
|
|
|
OPCODE(get_y_val ,yx),
|
|
|
|
OPCODE(get_atom ,xc),
|
2005-07-06 16:10:18 +01:00
|
|
|
OPCODE(get_2atoms ,cc), /* peephole */
|
|
|
|
OPCODE(get_3atoms ,ccc), /* peephole */
|
|
|
|
OPCODE(get_4atoms ,cccc), /* peephole */
|
|
|
|
OPCODE(get_5atoms ,ccccc), /* peephole */
|
|
|
|
OPCODE(get_6atoms ,cccccc), /* peephole */
|
2006-09-20 21:03:51 +01:00
|
|
|
OPCODE(get_float ,xd),
|
|
|
|
OPCODE(get_longint ,xi),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(get_bigint ,xc),
|
2007-11-06 17:02:13 +00:00
|
|
|
OPCODE(get_dbterm ,xc),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(get_list ,x),
|
|
|
|
OPCODE(get_struct ,xf),
|
|
|
|
OPCODE(unify_x_var ,ox),
|
|
|
|
OPCODE(unify_y_var ,oy),
|
|
|
|
OPCODE(unify_x_val ,ox),
|
|
|
|
OPCODE(unify_y_val ,oy),
|
|
|
|
OPCODE(unify_atom ,oc),
|
2006-09-20 21:03:51 +01:00
|
|
|
OPCODE(unify_float ,od),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(unify_longint ,oc),
|
|
|
|
OPCODE(unify_bigint ,oc),
|
2007-11-06 17:02:13 +00:00
|
|
|
OPCODE(unify_dbterm ,oc),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(unify_list ,o),
|
|
|
|
OPCODE(unify_struct ,of),
|
|
|
|
OPCODE(put_x_var ,xx),
|
|
|
|
OPCODE(put_y_var ,yx),
|
|
|
|
OPCODE(put_x_val ,xx),
|
|
|
|
OPCODE(put_y_val ,yx),
|
|
|
|
OPCODE(put_unsafe ,yx),
|
2005-07-06 16:10:18 +01:00
|
|
|
OPCODE(put_xx_val ,xxxx), /* peephole */
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(put_atom ,xc),
|
2006-09-20 21:03:51 +01:00
|
|
|
OPCODE(put_float ,xd),
|
|
|
|
OPCODE(put_longint ,xi),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(put_list ,x),
|
|
|
|
OPCODE(put_struct ,xf),
|
|
|
|
OPCODE(write_x_var ,x),
|
|
|
|
OPCODE(write_y_var ,y),
|
|
|
|
OPCODE(write_x_val ,x),
|
|
|
|
OPCODE(write_y_val ,y),
|
|
|
|
OPCODE(write_atom ,c),
|
2006-09-20 21:03:51 +01:00
|
|
|
OPCODE(write_float ,d),
|
|
|
|
OPCODE(write_longint ,i),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(write_list ,e),
|
|
|
|
OPCODE(write_struct ,f),
|
|
|
|
OPCODE(pop ,e),
|
|
|
|
OPCODE(pop_n ,s),
|
|
|
|
OPCODE(jump ,l),
|
|
|
|
OPCODE(move_back ,l),
|
|
|
|
OPCODE(skip ,l),
|
|
|
|
OPCODE(either ,sla),
|
|
|
|
OPCODE(or_else ,sla),
|
|
|
|
#ifdef YAPOR
|
|
|
|
OPCODE(or_last ,sla),
|
|
|
|
#else
|
2004-10-26 21:16:18 +01:00
|
|
|
OPCODE(or_last ,p),
|
2001-04-09 20:54:03 +01:00
|
|
|
#endif /* YAPOR */
|
2005-09-08 22:59:58 +01:00
|
|
|
#ifdef BEAM
|
2006-04-27 15:13:24 +01:00
|
|
|
OPCODE(retry_eam ,e),
|
2006-03-24 16:34:21 +00:00
|
|
|
OPCODE(run_eam ,os),
|
2005-09-08 22:59:58 +01:00
|
|
|
#endif
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(call_cpred ,sla),
|
|
|
|
OPCODE(call_usercpred ,sla),
|
|
|
|
OPCODE(call_c_wfail ,sdl),
|
|
|
|
OPCODE(call_bfunc_xx ,lxx),
|
|
|
|
OPCODE(call_bfunc_xy ,lxy),
|
|
|
|
OPCODE(call_bfunc_yx ,lxy),
|
|
|
|
OPCODE(call_bfunc_yy ,lyy),
|
|
|
|
OPCODE(cut_t ,e),
|
2003-10-17 03:11:21 +01:00
|
|
|
OPCODE(cut_e ,sla),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(try_clause ,ld),
|
2004-09-27 21:45:04 +01:00
|
|
|
OPCODE(try_clause2 ,l),
|
|
|
|
OPCODE(try_clause3 ,l),
|
|
|
|
OPCODE(try_clause4 ,l),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(retry ,ld),
|
2004-09-27 21:45:04 +01:00
|
|
|
OPCODE(retry2 ,l),
|
|
|
|
OPCODE(retry3 ,l),
|
|
|
|
OPCODE(retry4 ,l),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(trust ,ld),
|
2003-04-30 18:46:05 +01:00
|
|
|
OPCODE(try_in ,l),
|
2006-10-10 15:08:17 +01:00
|
|
|
OPCODE(enter_lu_pred ,Ill),
|
|
|
|
OPCODE(try_logical ,lld),
|
|
|
|
OPCODE(retry_logical ,lld),
|
|
|
|
OPCODE(trust_logical ,lld),
|
|
|
|
OPCODE(count_retry_logical ,lld),
|
|
|
|
OPCODE(count_trust_logical ,lld),
|
|
|
|
OPCODE(profiled_retry_logical ,lld),
|
|
|
|
OPCODE(profiled_trust_logical ,lld),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(jump_if_var ,l),
|
2005-04-10 05:01:15 +01:00
|
|
|
OPCODE(jump_if_nonvar ,xll),
|
2004-03-31 02:03:10 +01:00
|
|
|
OPCODE(switch_on_cons ,sssl),
|
2003-04-30 18:46:05 +01:00
|
|
|
OPCODE(switch_on_type ,llll),
|
|
|
|
OPCODE(switch_list_nl ,ollll),
|
|
|
|
OPCODE(switch_on_arg_type ,xllll),
|
|
|
|
OPCODE(switch_on_sub_arg_type ,sllll),
|
2004-03-31 02:03:10 +01:00
|
|
|
OPCODE(go_on_cons ,sssl),
|
|
|
|
OPCODE(if_cons ,sssl),
|
|
|
|
OPCODE(switch_on_func ,sssl),
|
|
|
|
OPCODE(go_on_func ,sssl),
|
|
|
|
OPCODE(if_func ,sssl),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(if_not_then ,cll),
|
2003-08-27 14:37:10 +01:00
|
|
|
OPCODE(index_dbref ,e),
|
|
|
|
OPCODE(index_blob ,e),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(trust_fail ,e),
|
2004-02-05 16:57:02 +00:00
|
|
|
OPCODE(index_pred ,e),
|
2007-11-26 23:43:10 +00:00
|
|
|
OPCODE(lock_pred ,e),
|
2003-08-27 14:37:10 +01:00
|
|
|
OPCODE(expand_index ,e),
|
2004-03-31 02:03:10 +01:00
|
|
|
OPCODE(expand_clauses ,sp),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(save_b_x ,x),
|
|
|
|
OPCODE(save_b_y ,y),
|
2003-12-27 00:38:53 +00:00
|
|
|
OPCODE(commit_b_x ,x),
|
|
|
|
OPCODE(commit_b_y ,y),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(undef_p ,e),
|
|
|
|
OPCODE(spy_pred ,e),
|
|
|
|
OPCODE(spy_or_trymark ,ld),
|
|
|
|
OPCODE(unify_void ,o),
|
|
|
|
OPCODE(write_void ,e),
|
|
|
|
OPCODE(save_pair_x ,ox),
|
|
|
|
OPCODE(save_pair_y ,oy),
|
|
|
|
OPCODE(save_appl_x ,ox),
|
|
|
|
OPCODE(save_appl_y ,oy),
|
|
|
|
OPCODE(unify_n_atoms ,osc),
|
|
|
|
OPCODE(write_n_atoms ,sc),
|
|
|
|
OPCODE(unify_n_voids ,os),
|
|
|
|
OPCODE(write_n_voids ,s),
|
2005-07-06 16:10:18 +01:00
|
|
|
OPCODE(glist_valx ,ss), /* peephole */
|
|
|
|
OPCODE(glist_valy ,xy), /* peephole */
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(fcall ,sla),
|
2005-12-17 03:25:39 +00:00
|
|
|
OPCODE(dexecute ,pp),
|
2005-07-06 16:10:18 +01:00
|
|
|
OPCODE(gl_void_varx ,xx), /* peephole */
|
|
|
|
OPCODE(gl_void_vary ,xy), /* peephole */
|
|
|
|
OPCODE(gl_void_valx ,xx), /* peephole */
|
|
|
|
OPCODE(gl_void_valy ,xy), /* peephole */
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(unify_x_loc ,ox),
|
|
|
|
OPCODE(unify_y_loc ,oy),
|
|
|
|
OPCODE(write_x_loc ,ox),
|
|
|
|
OPCODE(write_y_loc ,oy),
|
|
|
|
OPCODE(unify_x_var2 ,oxx),
|
|
|
|
OPCODE(unify_l_struc ,of),
|
|
|
|
OPCODE(unify_l_list ,o),
|
|
|
|
OPCODE(write_l_struc ,f),
|
|
|
|
OPCODE(write_l_list ,e),
|
|
|
|
OPCODE(unify_l_x_var ,ox),
|
|
|
|
OPCODE(unify_l_y_var ,oy),
|
|
|
|
OPCODE(unify_l_x_val ,ox),
|
|
|
|
OPCODE(unify_l_y_val ,oy),
|
|
|
|
OPCODE(unify_l_atom ,oc),
|
2006-09-20 21:03:51 +01:00
|
|
|
OPCODE(unify_l_float ,od),
|
|
|
|
OPCODE(unify_l_longint ,oi),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(unify_l_bigint ,oc),
|
2007-11-06 17:02:13 +00:00
|
|
|
OPCODE(unify_l_dbterm ,oc),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(unify_l_void ,o),
|
|
|
|
OPCODE(unify_l_n_voids ,os),
|
|
|
|
OPCODE(unify_l_x_loc ,ox),
|
|
|
|
OPCODE(unify_l_y_loc ,oy),
|
|
|
|
OPCODE(unify_l_x_var2 ,oxx),
|
|
|
|
OPCODE(unify_x_var_write ,ox),
|
|
|
|
OPCODE(unify_y_var_write ,oy),
|
|
|
|
OPCODE(unify_x_val_write ,ox),
|
|
|
|
OPCODE(unify_y_val_write ,oy),
|
|
|
|
OPCODE(unify_atom_write ,oc),
|
2006-09-20 21:03:51 +01:00
|
|
|
OPCODE(unify_float_write ,od),
|
|
|
|
OPCODE(unify_longint_write ,oi),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(unify_n_atoms_write ,osc),
|
|
|
|
OPCODE(unify_list_write ,o),
|
|
|
|
OPCODE(unify_x_var2_write ,oxx),
|
|
|
|
OPCODE(unify_struct_write ,of),
|
|
|
|
OPCODE(unify_void_write ,o),
|
|
|
|
OPCODE(unify_n_voids_write ,os),
|
|
|
|
OPCODE(unify_x_loc_write ,ox),
|
|
|
|
OPCODE(unify_y_loc_write ,oy),
|
|
|
|
OPCODE(unify_l_x_var_write ,ox),
|
|
|
|
OPCODE(unify_l_y_var_write ,oy),
|
|
|
|
OPCODE(unify_l_x_val_write ,ox),
|
|
|
|
OPCODE(unify_l_y_val_write ,oy),
|
|
|
|
OPCODE(unify_l_atom_write ,oc),
|
2006-09-20 21:03:51 +01:00
|
|
|
OPCODE(unify_l_float_write ,od),
|
|
|
|
OPCODE(unify_l_longint_write ,oi),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(unify_l_void_write ,o),
|
|
|
|
OPCODE(unify_l_n_voids_write ,os),
|
|
|
|
OPCODE(unify_l_x_loc_write ,ox),
|
|
|
|
OPCODE(unify_l_y_loc_write ,oy),
|
|
|
|
OPCODE(unify_l_x_var2_write ,oxx),
|
|
|
|
OPCODE(unify_l_list_write ,o),
|
|
|
|
OPCODE(unify_l_struc_write ,of),
|
|
|
|
OPCODE(save_pair_x_write ,ox),
|
|
|
|
OPCODE(save_pair_y_write ,oy),
|
|
|
|
OPCODE(save_appl_x_write ,ox),
|
|
|
|
OPCODE(save_appl_y_write ,oy),
|
|
|
|
OPCODE(enter_profiling ,l),
|
2003-01-29 14:47:17 +00:00
|
|
|
OPCODE(enter_a_profiling ,e),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(retry_profiled ,l),
|
|
|
|
OPCODE(profiled_retry_me ,ld),
|
|
|
|
OPCODE(profiled_trust_me ,ld),
|
|
|
|
OPCODE(profiled_retry_and_mark ,ld),
|
2002-09-03 15:28:09 +01:00
|
|
|
OPCODE(count_call ,l),
|
2003-01-29 14:47:17 +00:00
|
|
|
OPCODE(count_a_call ,e),
|
2002-09-03 15:28:09 +01:00
|
|
|
OPCODE(count_retry ,l),
|
|
|
|
OPCODE(count_retry_me ,ld),
|
|
|
|
OPCODE(count_trust_me ,ld),
|
|
|
|
OPCODE(count_retry_and_mark ,ld),
|
2004-02-05 16:57:02 +00:00
|
|
|
OPCODE(lock_lu ,p),
|
2004-02-09 14:19:05 +00:00
|
|
|
OPCODE(unlock_lu ,e),
|
2002-06-12 17:48:35 +01:00
|
|
|
OPCODE(alloc_for_logical_pred ,EC),
|
2003-08-27 14:37:10 +01:00
|
|
|
OPCODE(unify_idb_term ,e),
|
|
|
|
OPCODE(copy_idb_term ,e),
|
2008-03-25 22:03:14 +00:00
|
|
|
#if defined(THREADS)
|
2004-02-05 16:57:02 +00:00
|
|
|
OPCODE(thread_local ,e),
|
|
|
|
#endif
|
2001-04-09 20:54:03 +01:00
|
|
|
#ifdef SFUNC
|
|
|
|
OPCODE(get_s_f ,),
|
|
|
|
OPCODE(put_s_f ,),
|
|
|
|
OPCODE(unify_s_f ,),
|
|
|
|
OPCODE(write_s_f ,),
|
|
|
|
OPCODE(unify_s_xvar ,),
|
|
|
|
OPCODE(unify_s_yvar ,),
|
|
|
|
OPCODE(write_s_xvar ,),
|
|
|
|
OPCODE(write_s_yvar ,),
|
|
|
|
OPCODE(unify_s_xval ,),
|
|
|
|
OPCODE(unify_s_yval ,),
|
|
|
|
OPCODE(write_s_xval ,),
|
|
|
|
OPCODE(write_s_yval ,),
|
|
|
|
OPCODE(unify_s_a ,),
|
|
|
|
OPCODE(write_s_a ,),
|
|
|
|
OPCODE(get_s_end ,),
|
|
|
|
OPCODE(put_s_end ,),
|
|
|
|
OPCODE(unify_s_end ,),
|
|
|
|
OPCODE(write_s_end ,),
|
|
|
|
#endif /* SFUNC */
|
2004-03-10 14:59:55 +00:00
|
|
|
OPCODE(p_atom_x ,xF),
|
|
|
|
OPCODE(p_atom_y ,yF),
|
|
|
|
OPCODE(p_atomic_x ,xF),
|
|
|
|
OPCODE(p_atomic_y ,yF),
|
|
|
|
OPCODE(p_integer_x ,xF),
|
|
|
|
OPCODE(p_integer_y ,yF),
|
|
|
|
OPCODE(p_nonvar_x ,xF),
|
|
|
|
OPCODE(p_nonvar_y ,yF),
|
|
|
|
OPCODE(p_number_x ,xF),
|
|
|
|
OPCODE(p_number_y ,yF),
|
|
|
|
OPCODE(p_var_x ,xF),
|
|
|
|
OPCODE(p_var_y ,yF),
|
|
|
|
OPCODE(p_compound_x ,xF),
|
|
|
|
OPCODE(p_compound_y ,yF),
|
|
|
|
OPCODE(p_float_x ,xF),
|
|
|
|
OPCODE(p_float_y ,yF),
|
|
|
|
OPCODE(p_db_ref_x ,xF),
|
|
|
|
OPCODE(p_db_ref_y ,yF),
|
|
|
|
OPCODE(p_cut_by_x ,xF),
|
|
|
|
OPCODE(p_cut_by_y ,yF),
|
|
|
|
OPCODE(p_primitive_x ,xF),
|
|
|
|
OPCODE(p_primitive_y ,yF),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(p_equal ,e),
|
2005-06-01 21:25:23 +01:00
|
|
|
OPCODE(p_dif ,l),
|
|
|
|
OPCODE(p_eq ,l),
|
2001-04-09 20:54:03 +01:00
|
|
|
OPCODE(p_functor ,e),
|
|
|
|
OPCODE(p_plus_vv ,xxx),
|
|
|
|
OPCODE(p_plus_vc ,xxc),
|
|
|
|
OPCODE(p_plus_y_vv ,yxx),
|
|
|
|
OPCODE(p_plus_y_vc ,yxc),
|
|
|
|
OPCODE(p_minus_vv ,xxx),
|
|
|
|
OPCODE(p_minus_cv ,xcx),
|
|
|
|
OPCODE(p_minus_y_vv ,yxx),
|
|
|
|
OPCODE(p_minus_y_cv ,ycx),
|
|
|
|
OPCODE(p_times_vv ,xxx),
|
|
|
|
OPCODE(p_times_vc ,xxc),
|
|
|
|
OPCODE(p_times_y_vv ,yxx),
|
|
|
|
OPCODE(p_times_y_vc ,yxc),
|
|
|
|
OPCODE(p_div_vv ,xxx),
|
|
|
|
OPCODE(p_div_cv ,xcx),
|
|
|
|
OPCODE(p_div_vc ,xxc),
|
|
|
|
OPCODE(p_div_y_vv ,yxx),
|
|
|
|
OPCODE(p_div_y_cv ,ycx),
|
|
|
|
OPCODE(p_div_y_vc ,yxc),
|
|
|
|
OPCODE(p_and_vv ,xxx),
|
|
|
|
OPCODE(p_and_vc ,xxc),
|
|
|
|
OPCODE(p_and_y_vv ,yxx),
|
|
|
|
OPCODE(p_and_y_vc ,yxc),
|
|
|
|
OPCODE(p_or_vv ,xxx),
|
|
|
|
OPCODE(p_or_vc ,xxc),
|
|
|
|
OPCODE(p_or_y_vv ,yxx),
|
|
|
|
OPCODE(p_or_y_vc ,yxc),
|
|
|
|
OPCODE(p_sll_vv ,xxx),
|
|
|
|
OPCODE(p_sll_cv ,xcx),
|
|
|
|
OPCODE(p_sll_vc ,xxc),
|
|
|
|
OPCODE(p_sll_y_vv ,yxx),
|
|
|
|
OPCODE(p_sll_y_cv ,ycx),
|
|
|
|
OPCODE(p_sll_y_vc ,yxc),
|
|
|
|
OPCODE(p_slr_vv ,xcx),
|
|
|
|
OPCODE(p_slr_vc ,xxc),
|
|
|
|
OPCODE(p_slr_cv ,xcx),
|
|
|
|
OPCODE(p_slr_y_vv ,yxx),
|
|
|
|
OPCODE(p_slr_y_vc ,yxc),
|
2001-04-20 16:48:04 +01:00
|
|
|
OPCODE(p_slr_y_cv ,ycx),
|
|
|
|
OPCODE(p_arg_vv ,xxx),
|
|
|
|
OPCODE(p_arg_cv ,xxc),
|
|
|
|
OPCODE(p_arg_y_vv ,yxx),
|
2001-04-23 21:41:58 +01:00
|
|
|
OPCODE(p_arg_y_cv ,yxc),
|
|
|
|
OPCODE(p_func2s_vv ,xxx),
|
|
|
|
OPCODE(p_func2s_cv ,xcx),
|
|
|
|
OPCODE(p_func2s_vc ,xxc),
|
|
|
|
OPCODE(p_func2s_y_vv ,xxx),
|
|
|
|
OPCODE(p_func2s_y_cv ,xcx),
|
|
|
|
OPCODE(p_func2s_y_vc ,xxc),
|
|
|
|
OPCODE(p_func2f_xx ,xxx),
|
|
|
|
OPCODE(p_func2f_xy ,xyx),
|
|
|
|
OPCODE(p_func2f_yx ,yxx),
|
2001-10-30 16:42:05 +00:00
|
|
|
OPCODE(p_func2f_yy ,yyx),
|
2001-10-30 20:35:19 +00:00
|
|
|
OPCODE(p_execute ,sla),
|
2007-11-07 09:25:27 +00:00
|
|
|
OPCODE(p_execute2 ,sla),
|
2003-01-29 14:47:17 +00:00
|
|
|
OPCODE(p_execute_tail ,e)
|
|
|
|
|
2001-04-09 20:54:03 +01:00
|
|
|
|