Annotation of GNUtools/cctools/as/hppa-aux.h, revision 1.1.1.1

1.1       root        1: /* hppa-aux.h -- Assembler for the PA - PA-RISC specific support routines
                      2:    Copyright (C) 1989 Free Software Foundation, Inc.
                      3: 
                      4: This file is part of GAS, the GNU Assembler.
                      5: 
                      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)
                      9: any later version.
                     10: 
                     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.
                     15: 
                     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.  */
                     19: 
                     20: /*
                     21:    HP PA-RISC support was contributed by the Center for Software Science
                     22:    at the University of Utah.
                     23:  */
                     24: 
                     25: /* HP-PA support for Mach-O    ... USV */
                     26: 
                     27: #ifndef HPPA_AUX_DEFINED
                     28: #define HPPA_AUX_DEFINED
                     29: 
                     30: typedef enum FPOF { SGL, DBL, ILLEGAL_FMT, QUAD } FP_Operand_Format;
                     31: 
                     32: int pa_parse_number();
                     33: 
                     34: int pa_parse_fp_cmp_cond();
                     35: 
                     36: FP_Operand_Format pa_parse_fp_format();
                     37: 
                     38: int pa_parse_nullif();
                     39: 
                     40: int pa_parse_nonneg_cmpsub_cmpltr();
                     41: 
                     42: int pa_parse_neg_cmpsub_cmpltr();
                     43: 
                     44: int pa_parse_nonneg_add_cmpltr();
                     45: 
                     46: int pa_parse_neg_add_cmpltr();
                     47: 
                     48: /* A structure used during assembly of individual instructions */
                     49: 
                     50: struct pa_it {
                     51:     char    *error;
                     52:     unsigned long opcode;
                     53: #ifdef undef
                     54:     symbol_dictS *nlistp;      /*** used to be:    struct nlist *nlistp; */
                     55: #else
                     56:     struct nlist *nlistp;
                     57: #endif
                     58:     expressionS exp;
                     59:     int pcrel;
                     60:     int pcrel_reloc;
                     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)             */
                     65:     long field_selector;
                     66:     unsigned int reloc;
                     67: /*     enum reloc_type_hppa reloc; */
                     68:     int code;
                     69:     long arg_reloc;
                     70: };
                     71: 
                     72: extern struct pa_it the_insn;
                     73:   
                     74: /*
                     75:   PA-89 floating point registers are arranged like this:
                     76: 
                     77: 
                     78:   +--------------+--------------+
                     79:   |   0 or 16L   |  16 or 16R   |
                     80:   +--------------+--------------+
                     81:   |   1 or 17L   |  17 or 17R   |
                     82:   +--------------+--------------+
                     83:   |              |              |
                     84: 
                     85:   .              .              .
                     86:   .              .              .
                     87:   .              .              .
                     88: 
                     89:   |              |              |
                     90:   +--------------+--------------+
                     91:   |  14 or 30L   |  30 or 30R   |
                     92:   +--------------+--------------+
                     93:   |  15 or 31L   |  31 or 31R   |
                     94:   +--------------+--------------+
                     95: 
                     96: 
                     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'.
                    102: 
                    103:  */
                    104: 
                    105: struct pa_89_fp_reg_struct {
                    106:   char number_part;
                    107:   char L_R_select;
                    108: };
                    109: 
                    110: int need_89_opcode();
                    111: int pa_89_parse_number();
                    112: 
                    113: extern int getAbsoluteExpression(
                    114:     char *str);
                    115: extern int evaluateAbsolute(
                    116:     expressionS exp,
                    117:     int field_selector);
                    118: extern int getExpression(
                    119:     char *str);
                    120: 
                    121: #endif /* HPPA_AUX_DEFINED */
                    122: 
                    123: /* end hppa-aux.h */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.