Annotation of gcc/config/m68k/dpx2.h, revision 1.1

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