//	PLEASE NOTE!
//	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

#ifndef INSTRUCTIONS_H
#define INSTRUCTIONS_H

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

// Opcode values
const word8 PUT_X_VARIABLE = 1;
const word8 PUT_Y_VARIABLE = 2;
const word8 PUT_X_VALUE = 3;
const word8 PUT_Y_VALUE = 4;
const word8 PUT_CONSTANT = 5;
const word8 PUT_INTEGER = 6;
const word8 PUT_LIST = 7;
const word8 PUT_STRUCTURE = 8;
const word8 PUT_X_OBJECT_VARIABLE = 9;
const word8 PUT_Y_OBJECT_VARIABLE = 10;
const word8 PUT_X_OBJECT_VALUE = 11;
const word8 PUT_Y_OBJECT_VALUE = 12;
const word8 PUT_QUANTIFIER = 13;
const word8 CHECK_BINDER = 14;
const word8 PUT_SUBSTITUTION = 15;
const word8 PUT_X_TERM_SUBSTITUTION = 16;
const word8 PUT_Y_TERM_SUBSTITUTION = 17;
const word8 PUT_INITIAL_EMPTY_SUBSTITUTION = 18;
const word8 GET_X_VARIABLE = 19;
const word8 GET_Y_VARIABLE = 20;
const word8 GET_X_VALUE = 21;
const word8 GET_Y_VALUE = 22;
const word8 GET_CONSTANT = 23;
const word8 GET_INTEGER = 24;
const word8 GET_LIST = 25;
const word8 GET_STRUCTURE = 26;
const word8 GET_STRUCTURE_FRAME = 27;
const word8 GET_X_OBJECT_VARIABLE = 28;
const word8 GET_Y_OBJECT_VARIABLE = 29;
const word8 GET_X_OBJECT_VALUE = 30;
const word8 GET_Y_OBJECT_VALUE = 31;
const word8 UNIFY_X_VARIABLE = 32;
const word8 UNIFY_Y_VARIABLE = 33;
const word8 UNIFY_X_VALUE = 34;
const word8 UNIFY_Y_VALUE = 35;
const word8 UNIFY_VOID = 36;
const word8 SET_X_VARIABLE = 37;
const word8 SET_Y_VARIABLE = 38;
const word8 SET_X_VALUE = 39;
const word8 SET_Y_VALUE = 40;
const word8 SET_X_OBJECT_VARIABLE = 41;
const word8 SET_Y_OBJECT_VARIABLE = 42;
const word8 SET_X_OBJECT_VALUE = 43;
const word8 SET_Y_OBJECT_VALUE = 44;
const word8 SET_CONSTANT = 45;
const word8 SET_INTEGER = 46;
const word8 SET_VOID = 47;
const word8 SET_OBJECT_VOID = 48;
const word8 ALLOCATE = 49;
const word8 DEALLOCATE = 50;
const word8 CALL_PREDICATE = 51;
const word8 CALL_ADDRESS = 52;
const word8 CALL_ESCAPE = 53;
const word8 EXECUTE_PREDICATE = 54;
const word8 EXECUTE_ADDRESS = 55;
const word8 EXECUTE_ESCAPE = 56;
const word8 NOOP = 57;
const word8 JUMP = 58;
const word8 PROCEED = 59;
const word8 FAIL = 60;
const word8 HALT = 61;
const word8 EXIT = 62;
const word8 TRY_ME_ELSE = 63;
const word8 RETRY_ME_ELSE = 64;
const word8 TRUST_ME_ELSE_FAIL = 65;
const word8 TRY = 66;
const word8 RETRY = 67;
const word8 TRUST = 68;
const word8 NECK_CUT = 69;
const word8 GET_X_LEVEL = 70;
const word8 GET_Y_LEVEL = 71;
const word8 CUT = 72;
const word8 SWITCH_ON_TERM = 73;
const word8 SWITCH_ON_CONSTANT = 74;
const word8 SWITCH_ON_STRUCTURE = 75;
const word8 SWITCH_ON_QUANTIFIER = 76;
const word8 PSEUDO_INSTR0 = 77;
const word8 PSEUDO_INSTR1 = 78;
const word8 PSEUDO_INSTR2 = 79;
const word8 PSEUDO_INSTR3 = 80;
const word8 PSEUDO_INSTR4 = 81;
const word8 PSEUDO_INSTR5 = 82;
const word8 UNIFY_CONSTANT = 83;
const word8 UNIFY_INTEGER = 84;
const word8 UNIFY_X_REF = 85;
const word8 UNIFY_Y_REF = 86;
const word8 DB_JUMP = 87;
const word8 DB_EXECUTE_PREDICATE = 88;
const word8 DB_EXECUTE_ADDRESS = 89;
const word8 DB_PROCEED = 90;
const word8 PUT_DOUBLE = 91;
const word8 GET_DOUBLE = 92;
const word8 SET_DOUBLE = 93;
const word8 UNIFY_DOUBLE = 94;
const word8 PUT_STRING = 95;
const word8 GET_STRING = 96;
const word8 SET_STRING = 97;
const word8 UNIFY_STRING = 98;

// Opcode names
extern const char *opnames[];
// Operand types
extern const char *operands[];
// Instruction sizes
extern const word32 opsizes[];
#endif	// INSTRUCTIONS_H
