Annotation of researchv10dc/cmd/gcc/tm-sequent.h, revision 1.1.1.1

1.1       root        1: /* Definitions of target machine for GNU compiler.  SEQUENT NS32000 version.
                      2:    Copyright (C) 1987 Free Software Foundation, Inc.
                      3:    Contributed by Michael Tiemann ([email protected])
                      4: 
                      5: This file is part of GNU CC.
                      6: 
                      7: GNU CC is distributed in the hope that it will be useful,
                      8: but WITHOUT ANY WARRANTY.  No author or distributor
                      9: accepts responsibility to anyone for the consequences of using it
                     10: or for whether it serves any particular purpose or works at all,
                     11: unless he says so in writing.  Refer to the GNU CC General Public
                     12: License for full details.
                     13: 
                     14: Everyone is granted permission to copy, modify and redistribute
                     15: GNU CC, but only under the conditions described in the
                     16: GNU CC General Public License.   A copy of this license is
                     17: supposed to have been given to you along with GNU CC so you
                     18: can know your rights and responsibilities.  It should be in a
                     19: file named COPYING.  Among other things, the copyright notice
                     20: and this notice must be preserved on all copies.  */
                     21: 
                     22: #define SEQUENT_ADDRESS_BUG 1
                     23: 
                     24: #include "tm-ns32k.h"
                     25: 
                     26: /* Sequent has some changes in the format of DBX symbols.  */
                     27: #define DBX_NO_XREFS 1
                     28: 
                     29: /* Don't split DBX symbols into continuations.  */
                     30: #define DBX_CONTIN_LENGTH 0
                     31: 
                     32: #define TARGET_DEFAULT 1
                     33: 
                     34: #undef TARGET_VERSION
                     35: #undef CPP_PREDEFINES
                     36: #undef PRINT_OPERAND
                     37: #undef PRINT_OPERAND_ADDRESS
                     38: 
                     39: /* Print subsidiary information on the compiler version in use.  */
                     40: #define TARGET_VERSION printf (" (32000, Sequent syntax)");
                     41: 
                     42: #define CPP_PREDEFINES "-Dns32000 -Dsequent -Dunix"
                     43: 
                     44: /* %$ means print the prefix for an immediate operand.
                     45:    On the sequent, no prefix is used for such.  */
                     46: 
                     47: #define PRINT_OPERAND(FILE, X, CODE)  \
                     48: { if (CODE == '$') ;                                                   \
                     49:   else if (CODE == '?');                                               \
                     50:   else if (GET_CODE (X) == REG)                                                \
                     51:     fprintf (FILE, "%s", reg_name [REGNO (X)]);                                \
                     52:   else if (GET_CODE (X) == MEM)                                                \
                     53:     {                                                                  \
                     54:       rtx xfoo;                                                                \
                     55:       xfoo = XEXP (X, 0);                                              \
                     56:       switch (GET_CODE (xfoo))                                         \
                     57:        {                                                               \
                     58:        case MEM:                                                       \
                     59:          if (GET_CODE (XEXP (xfoo, 0)) == REG)                         \
                     60:            if (REGNO (XEXP (xfoo, 0)) == STACK_POINTER_REGNUM)         \
                     61:              fprintf (FILE, "0(0(sp))");                               \
                     62:            else fprintf (FILE, "0(0(%s))",                             \
                     63:                          reg_name [REGNO (XEXP (xfoo, 0))]);           \
                     64:          else                                                          \
                     65:            {                                                           \
                     66:              fprintf (FILE, "0(");                                     \
                     67:              output_address (xfoo);                                    \
                     68:              putc (')', FILE);                                         \
                     69:            }                                                           \
                     70:          break;                                                        \
                     71:        case REG:                                                       \
                     72:          fprintf (FILE, "0(%s)", reg_name [REGNO (xfoo)]);             \
                     73:          break;                                                        \
                     74:        case PRE_DEC:                                                   \
                     75:        case POST_INC:                                                  \
                     76:          fprintf (FILE, "tos");                                        \
                     77:          break;                                                        \
                     78:        case CONST_INT:                                                 \
                     79:          fprintf (FILE, "@%d", INTVAL (xfoo));                         \
                     80:          break;                                                        \
                     81:        default:                                                        \
                     82:          output_address (xfoo);                                        \
                     83:          break;                                                        \
                     84:        }                                                               \
                     85:     }                                                                  \
                     86:   else if (GET_CODE (X) == CONST_DOUBLE)                               \
                     87:     if (GET_MODE (X) == DFmode)                                                \
                     88:       { union { double d; int i[2]; } u;                               \
                     89:        u.i[0] = XINT (X, 0); u.i[1] = XINT (X, 1);                     \
                     90:        fprintf (FILE, "0d%.20e", u.d); }                               \
                     91:     else { union { float f; int i; } u;                                        \
                     92:           u.i = XINT (X, 0);                                           \
                     93:           fprintf (FILE, "0f%.20e", u.f); }                            \
                     94:   else output_addr_const (FILE, X); }
                     95: 
                     96: #define PRINT_OPERAND_ADDRESS(FILE, ADDR)  print_operand_address(FILE, ADDR)

unix.superglobalmegacorp.com

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