--- gcc/config/unx386.h 2018/04/24 17:51:34 1.1.1.1 +++ gcc/config/unx386.h 2018/04/24 18:04:53 1.1.1.3 @@ -38,10 +38,16 @@ the Free Software Foundation, 675 Mass A #define AS3(a,b,c,d) "a b,c,d" #endif +/* Define macro used to output shift-double opcodes when the shift + count is in %cl. Some assemblers require %cl as an argument; + some don't. This macro controls what to do: by default, don't + print %cl. */ +#define AS3_SHIFT_DOUBLE(a,b,c,d) AS2 (a,c,d) + /* Output the size-letter for an opcode. CODE is the letter used in an operand spec (L, B, W, S or Q). CH is the corresponding lower case letter - (except if CODE is L then CH is `l'). */ + (except if CODE is `Q' then CH is `l', unless GAS_MNEMONICS). */ #define PUT_OP_SIZE(CODE,CH,FILE) putc (CH,(FILE)) /* Opcode suffix for fullword insn. */ @@ -119,3 +125,21 @@ the Free Software Foundation, 675 Mass A #define ASM_GLOBALIZE_LABEL(FILE,NAME) \ (fputs (".globl ", FILE), assemble_name (FILE, NAME), fputs ("\n", FILE)) + +/* By default, target has a 80387, uses IEEE compatible arithmetic, + and returns float values in the 387, ie, + (TARGET_80387 | TARGET_IEEE_FP | TARGET_FLOAT_RETURNS_IN_80387) */ + +#define TARGET_DEFAULT 0301 + +/* Floating-point return values come in the FP register. */ + +#define VALUE_REGNO(MODE) \ + (GET_MODE_CLASS (MODE) == MODE_FLOAT \ + && TARGET_FLOAT_RETURNS_IN_80387 ? FIRST_FLOAT_REG : 0) + +/* 1 if N is a possible register number for a function value. */ + +#define FUNCTION_VALUE_REGNO_P(N) \ + ((N) == 0 || ((N)== FIRST_FLOAT_REG && TARGET_FLOAT_RETURNS_IN_80387)) +