//
//	THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT!
//
//##Qu-Prolog Copyright.abst##
//
// $Id: MkInstructions.in,v 1.3 2005/04/12 04:02:48 qp Exp n

#include "code.h"
#include "defs.h"
#include "instructions.h"

// Opcode names
const char *opnames[] = {
	/* EMPTY ENTRY */ 0,
	"put_x_variable",
	"put_y_variable",
	"put_x_value",
	"put_y_value",
	"put_constant",
	"put_integer",
	"put_list",
	"put_structure",
	"put_x_object_variable",
	"put_y_object_variable",
	"put_x_object_value",
	"put_y_object_value",
	"put_quantifier",
	"check_binder",
	"put_substitution",
	"put_x_term_substitution",
	"put_y_term_substitution",
	"put_initial_empty_substitution",
	"get_x_variable",
	"get_y_variable",
	"get_x_value",
	"get_y_value",
	"get_constant",
	"get_integer",
	"get_list",
	"get_structure",
	"get_structure_frame",
	"get_x_object_variable",
	"get_y_object_variable",
	"get_x_object_value",
	"get_y_object_value",
	"unify_x_variable",
	"unify_y_variable",
	"unify_x_value",
	"unify_y_value",
	"unify_void",
	"set_x_variable",
	"set_y_variable",
	"set_x_value",
	"set_y_value",
	"set_x_object_variable",
	"set_y_object_variable",
	"set_x_object_value",
	"set_y_object_value",
	"set_constant",
	"set_integer",
	"set_void",
	"set_object_void",
	"allocate",
	"deallocate",
	"call_predicate",
	"call_address",
	"call_escape",
	"execute_predicate",
	"execute_address",
	"execute_escape",
	"noop",
	"jump",
	"proceed",
	"fail",
	"halt",
	"exit",
	"try_me_else",
	"retry_me_else",
	"trust_me_else_fail",
	"try",
	"retry",
	"trust",
	"neck_cut",
	"get_x_level",
	"get_y_level",
	"cut",
	"switch_on_term",
	"switch_on_constant",
	"switch_on_structure",
	"switch_on_quantifier",
	"pseudo_instr0",
	"pseudo_instr1",
	"pseudo_instr2",
	"pseudo_instr3",
	"pseudo_instr4",
	"pseudo_instr5",
	"unify_constant",
	"unify_integer",
	"unify_x_ref",
	"unify_y_ref",
	"db_jump",
	"db_execute_predicate",
	"db_execute_address",
	"db_proceed",
	"put_double",
	"get_double",
	"set_double",
	"unify_double",
	"put_string",
	"get_string",
	"set_string",
	"unify_string",
};

// Operand types
const char *operands[] = {
	/* EMPTY ENTRY */ 0,
	/* PUT_X_VARIABLE */ "rr",
	/* PUT_Y_VARIABLE */ "rr",
	/* PUT_X_VALUE */ "rr",
	/* PUT_Y_VALUE */ "rr",
	/* PUT_CONSTANT */ "cr",
	/* PUT_INTEGER */ "ir",
	/* PUT_LIST */ "r",
	/* PUT_STRUCTURE */ "nr",
	/* PUT_X_OBJECT_VARIABLE */ "rr",
	/* PUT_Y_OBJECT_VARIABLE */ "rr",
	/* PUT_X_OBJECT_VALUE */ "rr",
	/* PUT_Y_OBJECT_VALUE */ "rr",
	/* PUT_QUANTIFIER */ "r",
	/* CHECK_BINDER */ "r",
	/* PUT_SUBSTITUTION */ "nr",
	/* PUT_X_TERM_SUBSTITUTION */ "rr",
	/* PUT_Y_TERM_SUBSTITUTION */ "rr",
	/* PUT_INITIAL_EMPTY_SUBSTITUTION */ "r",
	/* GET_X_VARIABLE */ "rr",
	/* GET_Y_VARIABLE */ "rr",
	/* GET_X_VALUE */ "rr",
	/* GET_Y_VALUE */ "rr",
	/* GET_CONSTANT */ "cr",
	/* GET_INTEGER */ "ir",
	/* GET_LIST */ "r",
	/* GET_STRUCTURE */ "cnr",
	/* GET_STRUCTURE_FRAME */ "nr",
	/* GET_X_OBJECT_VARIABLE */ "rr",
	/* GET_Y_OBJECT_VARIABLE */ "rr",
	/* GET_X_OBJECT_VALUE */ "rr",
	/* GET_Y_OBJECT_VALUE */ "rr",
	/* UNIFY_X_VARIABLE */ "r",
	/* UNIFY_Y_VARIABLE */ "r",
	/* UNIFY_X_VALUE */ "r",
	/* UNIFY_Y_VALUE */ "r",
	/* UNIFY_VOID */ "n",
	/* SET_X_VARIABLE */ "r",
	/* SET_Y_VARIABLE */ "r",
	/* SET_X_VALUE */ "r",
	/* SET_Y_VALUE */ "r",
	/* SET_X_OBJECT_VARIABLE */ "r",
	/* SET_Y_OBJECT_VARIABLE */ "r",
	/* SET_X_OBJECT_VALUE */ "r",
	/* SET_Y_OBJECT_VALUE */ "r",
	/* SET_CONSTANT */ "c",
	/* SET_INTEGER */ "i",
	/* SET_VOID */ "n",
	/* SET_OBJECT_VOID */ "n",
	/* ALLOCATE */ "n",
	/* DEALLOCATE */ "",
	/* CALL_PREDICATE */ "pnn",
	/* CALL_ADDRESS */ "an",
	/* CALL_ESCAPE */ "an",
	/* EXECUTE_PREDICATE */ "pn",
	/* EXECUTE_ADDRESS */ "a",
	/* EXECUTE_ESCAPE */ "a",
	/* NOOP */ "",
	/* JUMP */ "a",
	/* PROCEED */ "",
	/* FAIL */ "",
	/* HALT */ "",
	/* EXIT */ "",
	/* TRY_ME_ELSE */ "no",
	/* RETRY_ME_ELSE */ "o",
	/* TRUST_ME_ELSE_FAIL */ "",
	/* TRY */ "no",
	/* RETRY */ "o",
	/* TRUST */ "o",
	/* NECK_CUT */ "",
	/* GET_X_LEVEL */ "r",
	/* GET_Y_LEVEL */ "r",
	/* CUT */ "r",
	/* SWITCH_ON_TERM */ "r",
	/* SWITCH_ON_CONSTANT */ "rt",
	/* SWITCH_ON_STRUCTURE */ "rt",
	/* SWITCH_ON_QUANTIFIER */ "rt",
	/* PSEUDO_INSTR0 */ "n",
	/* PSEUDO_INSTR1 */ "nr",
	/* PSEUDO_INSTR2 */ "nrr",
	/* PSEUDO_INSTR3 */ "nrrr",
	/* PSEUDO_INSTR4 */ "nrrrr",
	/* PSEUDO_INSTR5 */ "nrrrrr",
	/* UNIFY_CONSTANT */ "c",
	/* UNIFY_INTEGER */ "i",
	/* UNIFY_X_REF */ "r",
	/* UNIFY_Y_REF */ "r",
	/* DB_JUMP */ "naaa",
	/* DB_EXECUTE_PREDICATE */ "pn",
	/* DB_EXECUTE_ADDRESS */ "a",
	/* DB_PROCEED */ "",
	/* PUT_DOUBLE */ "dr",
	/* GET_DOUBLE */ "dr",
	/* SET_DOUBLE */ "d",
	/* UNIFY_DOUBLE */ "d",
	/* PUT_STRING */ "r",
	/* GET_STRING */ "r",
	/* SET_STRING */ "",
	/* UNIFY_STRING */ "",
};

// Instruction sizes
const word32 opsizes[] = {
	/* EMPTY ENTRY */ 0,
	/* PUT_X_VARIABLE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_Y_VARIABLE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_X_VALUE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_Y_VALUE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_CONSTANT */ Code::SIZE_OF_CONSTANT + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_INTEGER */ Code::SIZE_OF_INTEGER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_LIST */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_STRUCTURE */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_X_OBJECT_VARIABLE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_Y_OBJECT_VARIABLE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_X_OBJECT_VALUE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_Y_OBJECT_VALUE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_QUANTIFIER */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* CHECK_BINDER */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_SUBSTITUTION */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_X_TERM_SUBSTITUTION */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_Y_TERM_SUBSTITUTION */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_INITIAL_EMPTY_SUBSTITUTION */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_X_VARIABLE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_Y_VARIABLE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_X_VALUE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_Y_VALUE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_CONSTANT */ Code::SIZE_OF_CONSTANT + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_INTEGER */ Code::SIZE_OF_INTEGER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_LIST */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_STRUCTURE */ Code::SIZE_OF_CONSTANT + Code::SIZE_OF_NUMBER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_STRUCTURE_FRAME */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_X_OBJECT_VARIABLE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_Y_OBJECT_VARIABLE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_X_OBJECT_VALUE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_Y_OBJECT_VALUE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* UNIFY_X_VARIABLE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* UNIFY_Y_VARIABLE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* UNIFY_X_VALUE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* UNIFY_Y_VALUE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* UNIFY_VOID */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_INSTRUCTION, 
	/* SET_X_VARIABLE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* SET_Y_VARIABLE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* SET_X_VALUE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* SET_Y_VALUE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* SET_X_OBJECT_VARIABLE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* SET_Y_OBJECT_VARIABLE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* SET_X_OBJECT_VALUE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* SET_Y_OBJECT_VALUE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* SET_CONSTANT */ Code::SIZE_OF_CONSTANT + Code::SIZE_OF_INSTRUCTION, 
	/* SET_INTEGER */ Code::SIZE_OF_INTEGER + Code::SIZE_OF_INSTRUCTION, 
	/* SET_VOID */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_INSTRUCTION, 
	/* SET_OBJECT_VOID */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_INSTRUCTION, 
	/* ALLOCATE */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_INSTRUCTION, 
	/* DEALLOCATE */ Code::SIZE_OF_INSTRUCTION, 
	/* CALL_PREDICATE */ Code::SIZE_OF_PRED + Code::SIZE_OF_NUMBER + Code::SIZE_OF_NUMBER + Code::SIZE_OF_INSTRUCTION, 
	/* CALL_ADDRESS */ Code::SIZE_OF_ADDRESS + Code::SIZE_OF_NUMBER + Code::SIZE_OF_INSTRUCTION, 
	/* CALL_ESCAPE */ Code::SIZE_OF_ADDRESS + Code::SIZE_OF_NUMBER + Code::SIZE_OF_INSTRUCTION, 
	/* EXECUTE_PREDICATE */ Code::SIZE_OF_PRED + Code::SIZE_OF_NUMBER + Code::SIZE_OF_INSTRUCTION, 
	/* EXECUTE_ADDRESS */ Code::SIZE_OF_ADDRESS + Code::SIZE_OF_INSTRUCTION, 
	/* EXECUTE_ESCAPE */ Code::SIZE_OF_ADDRESS + Code::SIZE_OF_INSTRUCTION, 
	/* NOOP */ Code::SIZE_OF_INSTRUCTION, 
	/* JUMP */ Code::SIZE_OF_ADDRESS + Code::SIZE_OF_INSTRUCTION, 
	/* PROCEED */ Code::SIZE_OF_INSTRUCTION, 
	/* FAIL */ Code::SIZE_OF_INSTRUCTION, 
	/* HALT */ Code::SIZE_OF_INSTRUCTION, 
	/* EXIT */ Code::SIZE_OF_INSTRUCTION, 
	/* TRY_ME_ELSE */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_OFFSET + Code::SIZE_OF_INSTRUCTION, 
	/* RETRY_ME_ELSE */ Code::SIZE_OF_OFFSET + Code::SIZE_OF_INSTRUCTION, 
	/* TRUST_ME_ELSE_FAIL */ Code::SIZE_OF_INSTRUCTION, 
	/* TRY */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_OFFSET + Code::SIZE_OF_INSTRUCTION, 
	/* RETRY */ Code::SIZE_OF_OFFSET + Code::SIZE_OF_INSTRUCTION, 
	/* TRUST */ Code::SIZE_OF_OFFSET + Code::SIZE_OF_INSTRUCTION, 
	/* NECK_CUT */ Code::SIZE_OF_INSTRUCTION, 
	/* GET_X_LEVEL */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_Y_LEVEL */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* CUT */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* SWITCH_ON_TERM */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* SWITCH_ON_CONSTANT */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_TABLE_SIZE + Code::SIZE_OF_INSTRUCTION, 
	/* SWITCH_ON_STRUCTURE */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_TABLE_SIZE + Code::SIZE_OF_INSTRUCTION, 
	/* SWITCH_ON_QUANTIFIER */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_TABLE_SIZE + Code::SIZE_OF_INSTRUCTION, 
	/* PSEUDO_INSTR0 */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_INSTRUCTION, 
	/* PSEUDO_INSTR1 */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PSEUDO_INSTR2 */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PSEUDO_INSTR3 */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PSEUDO_INSTR4 */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* PSEUDO_INSTR5 */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* UNIFY_CONSTANT */ Code::SIZE_OF_CONSTANT + Code::SIZE_OF_INSTRUCTION, 
	/* UNIFY_INTEGER */ Code::SIZE_OF_INTEGER + Code::SIZE_OF_INSTRUCTION, 
	/* UNIFY_X_REF */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* UNIFY_Y_REF */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* DB_JUMP */ Code::SIZE_OF_NUMBER + Code::SIZE_OF_ADDRESS + Code::SIZE_OF_ADDRESS + Code::SIZE_OF_ADDRESS + Code::SIZE_OF_INSTRUCTION, 
	/* DB_EXECUTE_PREDICATE */ Code::SIZE_OF_PRED + Code::SIZE_OF_NUMBER + Code::SIZE_OF_INSTRUCTION, 
	/* DB_EXECUTE_ADDRESS */ Code::SIZE_OF_ADDRESS + Code::SIZE_OF_INSTRUCTION, 
	/* DB_PROCEED */ Code::SIZE_OF_INSTRUCTION, 
	/* PUT_DOUBLE */ Code::SIZE_OF_DOUBLE + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_DOUBLE */ Code::SIZE_OF_DOUBLE + Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* SET_DOUBLE */ Code::SIZE_OF_DOUBLE + Code::SIZE_OF_INSTRUCTION, 
	/* UNIFY_DOUBLE */ Code::SIZE_OF_DOUBLE + Code::SIZE_OF_INSTRUCTION, 
	/* PUT_STRING */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* GET_STRING */ Code::SIZE_OF_REGISTER + Code::SIZE_OF_INSTRUCTION, 
	/* SET_STRING */ Code::SIZE_OF_INSTRUCTION, 
	/* UNIFY_STRING */ Code::SIZE_OF_INSTRUCTION, 
};

