Annotation of gcc/config/dpx2.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * dpx2.h - Bull DPX/2 200 and 300 systems (m68k, SysVr3)
                      3:  *
                      4:  * $Id: dpx2.h,v 1.3 1992/05/21 08:04:22 rms Exp $
                      5:  */
                      6: 
                      7: #include "m68k.h"
                      8: #undef SELECT_RTX_SECTION
                      9: #include "svr3.h"
                     10: 
                     11: /* See m68k.h.  7 means 68020 with 68881. 
                     12:  * We really have 68030, but this will get us going.  
                     13:  */
                     14: #ifndef TARGET_DEFAULT
                     15: #define TARGET_DEFAULT 7
                     16: #endif
                     17: 
                     18: #define OBJECT_FORMAT_COFF
                     19: #define NO_SYS_SIGLIST
                     20: 
                     21: #ifdef CPP_PREDEFINES
                     22: #undef CPP_PREDEFINES
                     23: #endif
                     24: /*
                     25:  * define all the things the compiler should
                     26:  */
                     27: #ifdef ncl_mr
                     28: # define CPP_PREDEFINES "-Dunix -Dbull -DDPX2 -DSVR3 -Dmc68000 -Dmc68020 -Dncl_mr=1"
                     29: #else
                     30: # ifdef ncl_el
                     31: # define CPP_PREDEFINES "-Dunix -Dbull -DDPX2 -DSVR3 -Dmc68000 -Dmc68020 -Dncl_el"
                     32: # else
                     33: #   define CPP_PREDEFINES "-Dunix -Dbull -DDPX2 -DSVR3 -Dmc68000 -Dmc68020"
                     34: # endif
                     35: #endif
                     36: 
                     37: #undef CPP_SPEC
                     38: /*
                     39:  * use -ansi to imply POSIX and XOPEN and BULL source
                     40:  * no -ansi implies _SYSV
                     41:  */
                     42: # define CPP_SPEC "%{ansi:-D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BULL_SOURCE}\
                     43:  %{!ansi:-D_SYSV}"
                     44: 
                     45: #undef ASM_LONG
                     46: #define ASM_LONG "\t.long"
                     47: 
                     48: #define HAVE_ATEXIT
                     49: #undef DO_GLOBAL_CTORS_BODY            /* don't use svr3.h version */
                     50: #undef DO_GLOBAL_DTORS_BODY
                     51:   
                     52: #if 0 /* def DEBUG */
                     53: /*
                     54:  * find out where cc1 aborts
                     55:  */
                     56: #define abort() do { fprintf(stderr, "%s: aborting at line %d\n", \
                     57:                             __FILE__, __LINE__); \
                     58:  kill(getpid(), 6); } while (0)
                     59: #endif
                     60: 
                     61: /* 
                     62:  * svr3.h says to use BSS_SECTION_FUNCTION
                     63:  * but no one appears to, and there is
                     64:  * no definition for m68k.
                     65:  */
                     66: #ifndef BSS_SECTION_FUNCTION
                     67: # undef EXTRA_SECTION_FUNCTIONS
                     68: # define EXTRA_SECTION_FUNCTIONS       \
                     69:   CONST_SECTION_FUNCTION               \
                     70:   INIT_SECTION_FUNCTION                        \
                     71:   FINI_SECTION_FUNCTION
                     72: #endif
                     73: 
                     74: #ifndef USE_GAS
                     75: /*
                     76:  * handle the native assembler.
                     77:  * this does NOT yet work, there is much left to do.
                     78:  * use GAS for now...
                     79:  */
                     80: #undef ASM_OUTPUT_SOURCE_FILENAME
                     81: #define ASM_OUTPUT_SOURCE_FILENAME(FILE, NA)   \
                     82:   do { fprintf ((FILE), "\t.file\t'%s'\n", (NA)); } while (0)
                     83: 
                     84: /* 
                     85:  * we don't seem to support any of:
                     86:  * .globl
                     87:  * .even
                     88:  * .align
                     89:  * .ascii
                     90:  */
                     91: #undef ASM_GLOBALIZE_LABEL
                     92: #define ASM_GLOBALIZE_LABEL(FILE,NAME) while (0)
                     93: #undef ASM_OUTPUT_ALIGN
                     94: #define ASM_OUTPUT_ALIGN(asm_out_file, align) while (0)
                     95: #define STRING_LIMIT   (0)
                     96: #undef ASM_APP_ON
                     97: #define ASM_APP_ON ""
                     98: #undef ASM_APP_OFF
                     99: #define ASM_APP_OFF ""
                    100: /*
                    101:  * dc.b 'hello, world!'
                    102:  * dc.b 10,0
                    103:  * is how we have to output "hello, world!\n"
                    104:  */
                    105: #undef ASM_OUTPUT_ASCII
                    106: #define ASM_OUTPUT_ASCII(asm_out_file, p, thissize)    \
                    107:   do { register int i, c, f=0;                 \
                    108:   for (i = 0; i < thissize; i++) {             \
                    109:     c = p[i];                                  \
                    110:     if (c == '\'' || c < ' ' || c > 127) {     \
                    111:       switch(f) {                              \
                    112:       case 0: /* need to output dc.b etc */    \
                    113:        fprintf(asm_out_file, "\tdc.b %d", c);  \
                    114:        f=1;                                    \
                    115:        break;                                  \
                    116:       case 1:                                  \
                    117:        fprintf(asm_out_file, ",%d", c);        \
                    118:        break;                                  \
                    119:       default:                                 \
                    120:        /* close a string */                    \
                    121:        fprintf(asm_out_file, "'\n\tdc.b %d", c); \
                    122:        f=1;                                    \
                    123:        break;                                  \
                    124:       }                                                \
                    125:     } else {                                   \
                    126:       switch(f) {                              \
                    127:       case 0:                                  \
                    128:        fprintf(asm_out_file, "\tdc.b '%c", c); \
                    129:        f=2;                                    \
                    130:        break;                                  \
                    131:       case 2:                                  \
                    132:        fprintf(asm_out_file, "%c", c);         \
                    133:        break;                                  \
                    134:       default:                                 \
                    135:        fprintf(asm_out_file, "\n\tdc.b '%c", c); \
                    136:        f=2;                                    \
                    137:        break;                                  \
                    138:       }                                                \
                    139:     }                                          \
                    140:   }                                            \
                    141:   if (f==2)                                    \
                    142:     putc('\'', asm_out_file);                  \
                    143:   putc('\n', asm_out_file); } while (0)
                    144: 
                    145: /* This is how to output an insn to push a register on the stack.
                    146:    It need not be very fast code.  */
                    147: 
                    148: #undef ASM_OUTPUT_REG_PUSH
                    149: #define ASM_OUTPUT_REG_PUSH(FILE,REGNO)  \
                    150:   fprintf (FILE, "\tmove.l %s,-(sp)\n", reg_names[REGNO])
                    151: 
                    152: /* This is how to output an insn to pop a register from the stack.
                    153:    It need not be very fast code.  */
                    154: 
                    155: #undef ASM_OUTPUT_REG_POP
                    156: #define ASM_OUTPUT_REG_POP(FILE,REGNO)  \
                    157:   fprintf (FILE, "\tmove.l (sp)+,%s\n", reg_names[REGNO])
                    158:                        
                    159: #endif /* ! use gas */                 

unix.superglobalmegacorp.com

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