1 /* hppa-aux.h -- Assembler for the PA - PA-RISC specific support routines
2 Copyright (C) 1989 Free Software Foundation, Inc.
4 This file is part of GAS, the GNU Assembler.
6 GAS is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 1, or (at your option)
11 GAS is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GAS; see the file COPYING. If not, write to
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
21 HP PA-RISC support was contributed by the Center for Software Science
22 at the University of Utah.
25 /* HP-PA support for Mach-O ... USV */
27 #ifndef HPPA_AUX_DEFINED
28 #define HPPA_AUX_DEFINED
30 typedef enum FPOF
{ SGL
, DBL
, ILLEGAL_FMT
, QUAD
} FP_Operand_Format
;
32 int pa_parse_number();
34 int pa_parse_fp_cmp_cond();
36 FP_Operand_Format
pa_parse_fp_format();
38 int pa_parse_nullif();
40 int pa_parse_nonneg_cmpsub_cmpltr();
42 int pa_parse_neg_cmpsub_cmpltr();
44 int pa_parse_nonneg_add_cmpltr();
46 int pa_parse_neg_add_cmpltr();
48 /* A structure used during assembly of individual instructions */
54 symbol_dictS
*nlistp
; /*** used to be: struct nlist *nlistp; */
61 FP_Operand_Format fpof1
; /* Floating Point Operand Format, operand 1 */
62 FP_Operand_Format fpof2
; /* Floating Point Operand Format, operand 2 */
63 /* (used only for class 1 instructions -- */
64 /* the conversion instructions) */
67 /* enum reloc_type_hppa reloc; */
72 extern struct pa_it the_insn
;
75 PA-89 floating point registers are arranged like this:
78 +--------------+--------------+
79 | 0 or 16L | 16 or 16R |
80 +--------------+--------------+
81 | 1 or 17L | 17 or 17R |
82 +--------------+--------------+
90 +--------------+--------------+
91 | 14 or 30L | 30 or 30R |
92 +--------------+--------------+
93 | 15 or 31L | 31 or 31R |
94 +--------------+--------------+
97 The following is a version of pa_parse_number that
98 handles the L/R notation and returns the correct
99 value to put into the instruction register field.
100 The correct value to put into the instruction is
101 encoded in the structure 'pa_89_fp_reg_struct'.
105 struct pa_89_fp_reg_struct
{
110 int need_89_opcode();
111 int pa_89_parse_number();
113 extern int getAbsoluteExpression(
115 extern int evaluateAbsolute(
118 extern int getExpression(
121 #endif /* HPPA_AUX_DEFINED */