diff -c2 orig/tm-3b1.h ./tm-3b1.h *** orig/tm-3b1.h Wed Jan 9 18:51:44 1991 --- ./tm-3b1.h Wed Jan 9 19:23:35 1991 *************** *** 35,39 **** #undef ASM_SPEC ! #define ASM_SPEC "%{m68020:-68020}%{!m68020:-68010}" /* we use /lib/libp/lib* when profiling */ --- 35,39 ---- #undef ASM_SPEC ! #define ASM_SPEC "%{m68020:-68020}%{!m68020:-68010} %{m68881:-68881}" /* we use /lib/libp/lib* when profiling */ *************** *** 97,100 **** --- 97,101 ---- #undef TARGET_VERSION + #undef REGISTER_NAMES #undef ASM_FORMAT_PRIVATE_NAME #undef ASM_OUTPUT_DOUBLE *************** *** 116,119 **** --- 117,125 ---- #define TARGET_VERSION fprintf (stderr, " (68k, SGS/AT&T unixpc syntax)"); + #define REGISTER_NAMES \ + {"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7", \ + "%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%fp", "%sp", \ + "%f0", "%f1", "%f2", "%f3", "%f4", "%f5", "%f6", "%f7"} + /* Store in OUTPUT a string (made with alloca) containing an assembler-name for a local static variable named NAME. *************** *** 299,303 **** CODE_LABEL_NUMBER (XEXP (addr, 0)), \ reg_names[REGNO (ireg)]); \ ! if (scale != 1) fprintf (FILE, ":%d", scale); \ fprintf (FILE, ")"); \ break; } \ --- 305,309 ---- CODE_LABEL_NUMBER (XEXP (addr, 0)), \ reg_names[REGNO (ireg)]); \ ! if (scale != 1) fprintf (FILE, "*%d", scale); \ fprintf (FILE, ")"); \ break; } \ *************** *** 324,328 **** else if (ireg != 0) \ fprintf (FILE, "%s.l", reg_names[REGNO (ireg)]); \ ! if (scale != 1) fprintf (FILE, ":%d", scale); \ putc (')', FILE); \ break; \ --- 330,334 ---- else if (ireg != 0) \ fprintf (FILE, "%s.l", reg_names[REGNO (ireg)]); \ ! if (scale != 1) fprintf (FILE, "*%d", scale); \ putc (')', FILE); \ break; \ *************** *** 384,389 **** if (!strncmp ((PTR), "fmove", 5)) \ { fprintf ((FILE), "fmov"); (PTR) += 5; } \ ! else if (!strncmp ((PTR), "ftst", 4)) \ ! { fprintf ((FILE), "ftest"); (PTR) += 4; } \ } \ /* MOVE, MOVEA, MOVEQ, MOVEC ==> MOV */ \ --- 390,395 ---- if (!strncmp ((PTR), "fmove", 5)) \ { fprintf ((FILE), "fmov"); (PTR) += 5; } \ ! else if (!strncmp ((PTR), "fbne", 4)) \ ! { fprintf ((FILE), "fbneq"); (PTR) += 4; } \ } \ /* MOVE, MOVEA, MOVEQ, MOVEC ==> MOV */ \ diff -c2 orig/tm-3b1g.h ./tm-3b1g.h *** orig/tm-3b1g.h Wed Jan 9 19:21:04 1991 --- ./tm-3b1g.h Wed Jan 9 18:23:20 1991 *************** *** 23,31 **** #define TARGET_DEFAULT 0 /* Define __HAVE_68881 in preprocessor only if -m68881 is specified. This will control the use of inline 68881 insns in certain macros. Also inform the program which CPU this is for. */ ! #define CPP_SPEC "%{m68881:-D__HAVE_68881__} \ ! %{!ansi:%{m68020:-Dmc68020}%{mc68020:-Dmc68020}%{!mc68020:%{!m68020:-Dmc68010}}}" /* -m68020 requires special flags to the assembler. */ --- 23,33 ---- #define TARGET_DEFAULT 0 + #undef TARGET_VERSION + #define TARGET_VERSION fprintf (stderr, " (68k, AT&T UnixPC/gas)"); + /* Define __HAVE_68881 in preprocessor only if -m68881 is specified. This will control the use of inline 68881 insns in certain macros. Also inform the program which CPU this is for. */ ! #define CPP_SPEC "%{m68881:-D__HAVE_68881__}" /* -m68020 requires special flags to the assembler. */ *************** *** 34,41 **** /* Names to predefine in the preprocessor for this target machine. */ ! #define CPP_PREDEFINES "-Dmc68000 -Dmc68k -Dunix -Dunixpc" ! /* This is (not really) BSD, so (but) it wants DBX format. */ ! #define DBX_DEBUGGING_INFO /* Brain damage. */ --- 36,60 ---- /* Names to predefine in the preprocessor for this target machine. */ ! #define CPP_PREDEFINES "-Dmc68k -Dunix -Dunixpc" ! ! /* we use /lib/libp/lib* when profiling */ ! ! #undef LIB_SPEC ! #define LIB_SPEC "%{!shlib:%{p:-L/lib/libp} %{pg:-L/lib/libp} -lc}" ! ! /* shared libraries need to use crt0s.o */ ! ! #undef STARTFILE_SPEC ! #define STARTFILE_SPEC \ ! "%{!shlib:%{pg:mcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}}\ ! %{shlib:crt0s.o%s shlib.ifile%s} " ! ! /* Even though we're using gas, we still use sdb debugging info. */ ! #define SDB_DEBUGGING_INFO ! ! /* The .file command should always begin the output. */ ! #undef ASM_FILE_START ! #define ASM_FILE_START(FILE) sdbout_filename ((FILE), main_input_filename) /* Brain damage. */ *************** *** 42,55 **** #define SCCS_DIRECTIVE - /* Specify how to pad function arguments. - Value should be `upward', `downward' or `none'. - Same as the default, except no padding for large or variable-size args. */ - #define FUNCTION_ARG_PADDING(mode, size) \ - (((mode) == BLKmode \ - ? (GET_CODE (size) == CONST_INT \ - && INTVAL (size) < PARM_BOUNDARY / BITS_PER_UNIT) \ - : GET_MODE_BITSIZE (mode) < PARM_BOUNDARY) \ - ? downward : none) - /* Override part of the obstack macros. */ #define __PTR_TO_INT(P) ((int)(P)) --- 61,64 ---- *************** *** 62,63 **** --- 71,81 ---- #define TARGET_MEM_FUNCTIONS + /* Define subroutines to call to handle multiply, divide, and remainder. + Use the subroutines that the 3b1's library provides. */ + + #define DIVSI3_LIBCALL "ldiv" + #define UDIVSI3_LIBCALL "uldiv" + #define MODSI3_LIBCALL "lrem" + #define UMODSI3_LIBCALL "ulrem" + #define MULSI3_LIBCALL "lmul" + #define UMULSI3_LIBCALL "ulmul" diff -c2 orig/xm-3b1.h ./xm-3b1.h *** orig/xm-3b1.h Wed Jan 9 19:23:53 1991 --- ./xm-3b1.h Thu Apr 27 10:25:01 1989 *************** *** 1,3 **** --- 1,4 ---- #define USG + #define HAVE_VPRINTF #include "xm-m68k.h"