--- gcc/config/vax/vax.h 2018/04/24 18:16:04 1.1.1.2 +++ gcc/config/vax/vax.h 2018/04/24 18:22:18 1.1.1.3 @@ -1,5 +1,5 @@ /* Definitions of target machine for GNU compiler. Vax version. - Copyright (C) 1987, 1988, 1991, 1993 Free Software Foundation, Inc. + Copyright (C) 1987, 1988, 1991, 1993, 1994 Free Software Foundation, Inc. This file is part of GNU CC. @@ -20,7 +20,7 @@ the Free Software Foundation, 675 Mass A /* Names to predefine in the preprocessor for this target machine. */ -#define CPP_PREDEFINES "-Dvax -Dunix -Asystem(unix) -Asystem(bsd) -Acpu(vax) -Amachine(vax)" +#define CPP_PREDEFINES "-Dvax -D__vax__ -Dunix -Asystem(unix) -Asystem(bsd) -Acpu(vax) -Amachine(vax)" /* If using g-format floating point, alter math.h. */ @@ -884,7 +884,7 @@ gen_rtx (PLUS, Pmode, frame, gen_rtx (CO #define RTX_COSTS(RTX,CODE,OUTER_CODE) case FIX: case FLOAT: \ case MULT: case DIV: case UDIV: case MOD: case UMOD: \ - case LSHIFT: case ASHIFT: case LSHIFTRT: case ASHIFTRT: \ + case ASHIFT: case LSHIFTRT: case ASHIFTRT: \ case ROTATE: case ROTATERT: case PLUS: case MINUS: case IOR: \ case XOR: case AND: case NEG: case NOT: case ZERO_EXTRACT: \ case SIGN_EXTRACT: case MEM: return vax_rtx_cost(RTX) @@ -912,7 +912,8 @@ gen_rtx (PLUS, Pmode, frame, gen_rtx (CO /* note that it is very hard to accidentally create a number that fits in a double but not in a float, since their ranges are almost the same */ -#define CHECK_FLOAT_VALUE(mode, d) (check_float_value (mode, &d)) +#define CHECK_FLOAT_VALUE(MODE, D, OVERFLOW) \ + ((OVERFLOW) = check_float_value (MODE, &D, OVERFLOW)) /* For future reference: D Float: 9 bit, sign magnitude, excess 128 binary exponent @@ -1172,6 +1173,17 @@ do { char dstr[30]; \ ( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10), \ sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO))) +/* When debugging, we want to output an extra dummy label so that gas + can distinguish between D_float and G_float prior to processing the + .stabs directive identifying type double. */ + +#define ASM_IDENTIFY_LANGUAGE(FILE) \ + do { \ + output_lang_identify (FILE); \ + if (write_symbols == DBX_DEBUG) \ + fprintf (FILE, "___vax_%c_doubles:\n", ASM_DOUBLE_CHAR); \ + } while (0) + /* Define the parentheses used to group arithmetic operations in assembler code. */