bit_fix.h revision 78828
155714Skris/* bit_fix.h
255714Skris   Copyright 1987, 1992, 2000 Free Software Foundation, Inc.
355714Skris
455714Skris   This file is part of GAS, the GNU Assembler.
5109998Smarkm
6109998Smarkm   GAS is free software; you can redistribute it and/or modify
7109998Smarkm   it under the terms of the GNU General Public License as published by
8109998Smarkm   the Free Software Foundation; either version 2, or (at your option)
955714Skris   any later version.
1055714Skris
1155714Skris   GAS is distributed in the hope that it will be useful,
1279998Skris   but WITHOUT ANY WARRANTY; without even the implied warranty of
1355714Skris   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1455714Skris   GNU General Public License for more details.
1579998Skris
1679998Skris   You should have received a copy of the GNU General Public License
1755714Skris   along with GAS; see the file COPYING.  If not, write to the Free
1855714Skris   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
1955714Skris   02111-1307, USA.  */
2055714Skris
2155714Skris/* The bit_fix was implemented to support machines that need variables
2255714Skris   to be inserted in bitfields other than 1, 2 and 4 bytes.
2355714Skris   Furthermore it gives us a possibillity to mask in bits in the symbol
2455714Skris   when it's fixed in the objectcode and check the symbols limits.
2555714Skris
2655714Skris   The or-mask is used to set the huffman bits in displacements for the
2755714Skris   ns32k port.
2855714Skris   The acbi, addqi, movqi, cmpqi instruction requires an assembler that
2955714Skris   can handle bitfields. Ie handle an expression, evaluate it and insert
3055714Skris   the result in an some bitfield. ( ex: 5 bits in a short field of a opcode)
3155714Skris   */
3255714Skris
3355714Skris#ifndef __bit_fix_h__
3455714Skris#define __bit_fix_h__
3555714Skris
3655714Skrisstruct bit_fix {
3755714Skris  int fx_bit_size;		/* Length of bitfield */
3855714Skris  int fx_bit_offset;		/* Bit offset to bitfield */
3955714Skris  long fx_bit_base;		/* Where do we apply the bitfix.
4055714Skris				   If this is zero, default is assumed.  */
4159191Skris  long fx_bit_base_adj;		/* Adjustment of base */
4259191Skris  long fx_bit_max;		/* Signextended max for bitfield */
4355714Skris  long fx_bit_min;		/* Signextended min for bitfield */
4455714Skris  long fx_bit_add;		/* Or mask, used for huffman prefix */
4555714Skris};
4655714Skristypedef struct bit_fix bit_fixS;
4755714Skris
4855714Skris#endif /* __bit_fix_h__ */
4955714Skris