Blame include/vms/etir.h

Packit bbfece
/* Alpha VMS external format of Extended Text Information and Relocation.
Packit bbfece
Packit bbfece
   Copyright (C) 2010-2018 Free Software Foundation, Inc.
Packit bbfece
   Written by Tristan Gingold <gingold@adacore.com>, AdaCore.
Packit bbfece
Packit bbfece
   This file is part of BFD, the Binary File Descriptor library.
Packit bbfece
Packit bbfece
   This program is free software; you can redistribute it and/or modify
Packit bbfece
   it under the terms of the GNU General Public License as published by
Packit bbfece
   the Free Software Foundation; either version 3 of the License, or
Packit bbfece
   (at your option) any later version.
Packit bbfece
Packit bbfece
   This program is distributed in the hope that it will be useful,
Packit bbfece
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit bbfece
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit bbfece
   GNU General Public License for more details.
Packit bbfece
Packit bbfece
   You should have received a copy of the GNU General Public License
Packit bbfece
   along with this program; if not, write to the Free Software
Packit bbfece
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
Packit bbfece
   MA 02110-1301, USA.  */
Packit bbfece
Packit bbfece
#ifndef _VMS_ETIR_H
Packit bbfece
#define _VMS_ETIR_H
Packit bbfece
Packit bbfece
#define ETIR__C_MINSTACOD 0	/* Minimum stack code.		*/
Packit bbfece
#define ETIR__C_STA_GBL   0	/* Stack global symbol value.	*/
Packit bbfece
#define ETIR__C_STA_LW    1	/* Stack longword.		*/
Packit bbfece
#define ETIR__C_STA_QW    2	/* Stack quadword.		*/
Packit bbfece
#define ETIR__C_STA_PQ    3	/* Stack psect base + quadword off.  */
Packit bbfece
#define ETIR__C_STA_LI    4	/* Stack literal.		*/
Packit bbfece
#define ETIR__C_STA_MOD   5	/* Stack module.		*/
Packit bbfece
#define ETIR__C_STA_CKARG 6	/* Check Arguments.		*/
Packit bbfece
#define ETIR__C_MAXSTACOD 6	/* Maximum stack code.		*/
Packit bbfece
Packit bbfece
#define ETIR__C_MINSTOCOD  50	/* Minimum store code.		*/
Packit bbfece
#define ETIR__C_STO_B      50	/* Store byte.			*/
Packit bbfece
#define ETIR__C_STO_W      51	/* Store word.			*/
Packit bbfece
#define ETIR__C_STO_LW     52	/* Store longword.		*/
Packit bbfece
#define ETIR__C_STO_QW     53	/* Store quadword.		*/
Packit bbfece
#define ETIR__C_STO_IMMR   54	/* Store immediate Repeated.	*/
Packit bbfece
#define ETIR__C_STO_GBL    55	/* Store global.		*/
Packit bbfece
#define ETIR__C_STO_CA     56	/* Store code address.		*/
Packit bbfece
#define ETIR__C_STO_RB     57	/* Store relative branch.	*/
Packit bbfece
#define ETIR__C_STO_AB     58	/* Store absolute branch.	*/
Packit bbfece
#define ETIR__C_STO_OFF    59	/* Store offset within psect.	*/
Packit bbfece
#define ETIR__C_STO_IMM    61	/* Store immediate.		*/
Packit bbfece
#define ETIR__C_STO_GBL_LW 62	/* Store global Longword.	*/
Packit bbfece
#define ETIR__C_STO_LP_PSB 63	/* STO_LP_PSB not valid in level 2 use STC_LP_PSB.  */
Packit bbfece
#define ETIR__C_STO_HINT_GBL 64  /* Store 14 bit HINT at global address.  */
Packit bbfece
#define ETIR__C_STO_HINT_PS  65  /* Store 14 bit HINT at psect + offset */
Packit bbfece
#define ETIR__C_MAXSTOCOD    65  /* Maximum store code.		*/
Packit bbfece
Packit bbfece
/* Operate codes.  */
Packit bbfece
#define ETIR__C_MINOPRCOD 100	/* Minimum operate code.	*/
Packit bbfece
#define ETIR__C_OPR_NOP   100	/* No-op.			*/
Packit bbfece
#define ETIR__C_OPR_ADD   101	/* Add.				*/
Packit bbfece
#define ETIR__C_OPR_SUB   102	/* Subtract.			*/
Packit bbfece
#define ETIR__C_OPR_MUL   103	/* Multiply.			*/
Packit bbfece
#define ETIR__C_OPR_DIV   104	/* Divide.			*/
Packit bbfece
#define ETIR__C_OPR_AND   105	/* Logical AND.			*/
Packit bbfece
#define ETIR__C_OPR_IOR   106	/* Logical inclusive OR.	*/
Packit bbfece
#define ETIR__C_OPR_EOR   107	/* Logical exclusive OR.	*/
Packit bbfece
#define ETIR__C_OPR_NEG   108	/* Negate.			*/
Packit bbfece
#define ETIR__C_OPR_COM   109	/* Complement.			*/
Packit bbfece
#define ETIR__C_OPR_INSV  110	/* Insert bit field.		*/
Packit bbfece
#define ETIR__C_OPR_ASH   111	/* Arithmetic shift.		*/
Packit bbfece
#define ETIR__C_OPR_USH   112	/* Unsigned shift.		*/
Packit bbfece
#define ETIR__C_OPR_ROT   113	/* Rotate.			*/
Packit bbfece
#define ETIR__C_OPR_SEL   114	/* Select one of 3 long on top of stack.   */
Packit bbfece
#define ETIR__C_OPR_REDEF 115	/* Redefine this symbol after pass 2.  */
Packit bbfece
#define ETIR__C_OPR_DFLIT 116	/* Define a literal.		*/
Packit bbfece
#define ETIR__C_MAXOPRCOD 116	/* Maximum operate code.	*/
Packit bbfece
Packit bbfece
/* Control codes.  */
Packit bbfece
#define ETIR__C_MINCTLCOD 150	/* Minimum control code.	*/
Packit bbfece
#define ETIR__C_CTL_SETRB 150	/* Set relocation base.		*/
Packit bbfece
#define ETIR__C_CTL_AUGRB 151	/* Augment relocation base.	*/
Packit bbfece
#define ETIR__C_CTL_DFLOC 152	/* Define debug location.	*/
Packit bbfece
#define ETIR__C_CTL_STLOC 153	/* Set debug location.		*/
Packit bbfece
#define ETIR__C_CTL_STKDL 154	/* Stack debug location.	*/
Packit bbfece
#define ETIR__C_MAXCTLCOD 154	/* Maximum control code.	*/
Packit bbfece
Packit bbfece
/* Store-conditional (STC) codes.  */
Packit bbfece
#define ETIR__C_MINSTCCOD   200 /* Minimum store-conditional code.   */
Packit bbfece
#define ETIR__C_STC_LP      200 /* STC Linkage Pair.   */
Packit bbfece
#define ETIR__C_STC_LP_PSB  201 /* STC Linkage Pair with Proc Signature.  */
Packit bbfece
#define ETIR__C_STC_GBL     202 /* STC Address at global address.  */
Packit bbfece
#define ETIR__C_STC_GCA     203 /* STC Code Address at global address.  */
Packit bbfece
#define ETIR__C_STC_PS      204 /* STC Address at psect + offset.  */
Packit bbfece
#define ETIR__C_STC_NOP_GBL 205 /* STC NOP at address of global.  */
Packit bbfece
#define ETIR__C_STC_NOP_PS  206 /* STC NOP at pect + offset.  */
Packit bbfece
#define ETIR__C_STC_BSR_GBL 207 /* STC BSR at global address.  */
Packit bbfece
#define ETIR__C_STC_BSR_PS  208 /* STC BSR at pect + offset.  */
Packit bbfece
#define ETIR__C_STC_LDA_GBL 209 /* STC LDA at global address.  */
Packit bbfece
#define ETIR__C_STC_LDA_PS  210 /* STC LDA at psect + offset.  */
Packit bbfece
#define ETIR__C_STC_BOH_GBL 211 /* STC BSR or Hint at global address.  */
Packit bbfece
#define ETIR__C_STC_BOH_PS  212 /* STC BSR or Hint at pect + offset.  */
Packit bbfece
#define ETIR__C_STC_NBH_GBL 213 /* STC NOP,BSR or HINT at global address.  */
Packit bbfece
#define ETIR__C_STC_NBH_PS  214 /* STC NOP,BSR or HINT at psect + offset.  */
Packit bbfece
#define ETIR__C_MAXSTCCOD   214 /* Maximum store-conditional code.   */
Packit bbfece
Packit bbfece
#define ETIR__C_HEADER_SIZE 4	/* Size of the header of a command */
Packit bbfece
Packit bbfece
struct vms_etir
Packit bbfece
{
Packit bbfece
  /* Commands.  See above.  */
Packit bbfece
  unsigned char rectyp[2];
Packit bbfece
Packit bbfece
  /* Size (including this header).  */
Packit bbfece
  unsigned char size[2];
Packit bbfece
};
Packit bbfece
Packit bbfece
#endif /* _VMS_ETIR_H */