1*e4b17023SJohn Marino /* Definitions for Unix assembler syntax for the Intel 80386. 2*e4b17023SJohn Marino Copyright (C) 1988, 1994, 1999, 2000, 2001, 2002, 2007, 2009, 2010 3*e4b17023SJohn Marino Free Software Foundation, Inc. 4*e4b17023SJohn Marino 5*e4b17023SJohn Marino This file is part of GCC. 6*e4b17023SJohn Marino 7*e4b17023SJohn Marino GCC is free software; you can redistribute it and/or modify 8*e4b17023SJohn Marino it under the terms of the GNU General Public License as published by 9*e4b17023SJohn Marino the Free Software Foundation; either version 3, or (at your option) 10*e4b17023SJohn Marino any later version. 11*e4b17023SJohn Marino 12*e4b17023SJohn Marino GCC is distributed in the hope that it will be useful, 13*e4b17023SJohn Marino but WITHOUT ANY WARRANTY; without even the implied warranty of 14*e4b17023SJohn Marino MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15*e4b17023SJohn Marino GNU General Public License for more details. 16*e4b17023SJohn Marino 17*e4b17023SJohn Marino Under Section 7 of GPL version 3, you are granted additional 18*e4b17023SJohn Marino permissions described in the GCC Runtime Library Exception, version 19*e4b17023SJohn Marino 3.1, as published by the Free Software Foundation. 20*e4b17023SJohn Marino 21*e4b17023SJohn Marino You should have received a copy of the GNU General Public License and 22*e4b17023SJohn Marino a copy of the GCC Runtime Library Exception along with this program; 23*e4b17023SJohn Marino see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 24*e4b17023SJohn Marino <http://www.gnu.org/licenses/>. */ 25*e4b17023SJohn Marino 26*e4b17023SJohn Marino /* This file defines the aspects of assembler syntax 27*e4b17023SJohn Marino that are the same for all the i386 Unix systems 28*e4b17023SJohn Marino (though they may differ in non-Unix systems). */ 29*e4b17023SJohn Marino 30*e4b17023SJohn Marino /* Define macro used to output shift-double opcodes when the shift 31*e4b17023SJohn Marino count is in %cl. Some assemblers require %cl as an argument; 32*e4b17023SJohn Marino some don't. This macro controls what to do: by default, don't 33*e4b17023SJohn Marino print %cl. */ 34*e4b17023SJohn Marino #define SHIFT_DOUBLE_OMITS_COUNT 1 35*e4b17023SJohn Marino 36*e4b17023SJohn Marino /* Define the syntax of pseudo-ops, labels and comments. */ 37*e4b17023SJohn Marino 38*e4b17023SJohn Marino /* String containing the assembler's comment-starter. 39*e4b17023SJohn Marino Note the trailing space is necessary in case the character 40*e4b17023SJohn Marino that immediately follows the comment is '*'. If this happens 41*e4b17023SJohn Marino and the space is not there the assembler will interpret this 42*e4b17023SJohn Marino as the start of a C-like slash-star comment and complain when 43*e4b17023SJohn Marino there is no terminator. */ 44*e4b17023SJohn Marino 45*e4b17023SJohn Marino #define ASM_COMMENT_START "/ " 46*e4b17023SJohn Marino 47*e4b17023SJohn Marino /* Output to assembler file text saying following lines 48*e4b17023SJohn Marino may contain character constants, extra white space, comments, etc. */ 49*e4b17023SJohn Marino 50*e4b17023SJohn Marino #define ASM_APP_ON "/APP\n" 51*e4b17023SJohn Marino 52*e4b17023SJohn Marino /* Output to assembler file text saying following lines 53*e4b17023SJohn Marino no longer contain unusual constructs. */ 54*e4b17023SJohn Marino 55*e4b17023SJohn Marino #define ASM_APP_OFF "/NO_APP\n" 56*e4b17023SJohn Marino 57*e4b17023SJohn Marino /* Output before read-only data. */ 58*e4b17023SJohn Marino 59*e4b17023SJohn Marino #define TEXT_SECTION_ASM_OP "\t.text" 60*e4b17023SJohn Marino 61*e4b17023SJohn Marino /* Output before writable (initialized) data. */ 62*e4b17023SJohn Marino 63*e4b17023SJohn Marino #define DATA_SECTION_ASM_OP "\t.data" 64*e4b17023SJohn Marino 65*e4b17023SJohn Marino /* Output before writable (uninitialized) data. */ 66*e4b17023SJohn Marino 67*e4b17023SJohn Marino #define BSS_SECTION_ASM_OP "\t.bss" 68*e4b17023SJohn Marino 69*e4b17023SJohn Marino /* Globalizing directive for a label. */ 70*e4b17023SJohn Marino #define GLOBAL_ASM_OP "\t.globl\t" 71*e4b17023SJohn Marino 72*e4b17023SJohn Marino /* By default, target has a 80387, uses IEEE compatible arithmetic, 73*e4b17023SJohn Marino and returns float values in the 387. */ 74*e4b17023SJohn Marino #undef TARGET_SUBTARGET_DEFAULT 75*e4b17023SJohn Marino #define TARGET_SUBTARGET_DEFAULT \ 76*e4b17023SJohn Marino (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS) 77*e4b17023SJohn Marino 78*e4b17023SJohn Marino /* By default, 64-bit mode uses 128-bit long double. */ 79*e4b17023SJohn Marino #undef TARGET_SUBTARGET64_DEFAULT 80*e4b17023SJohn Marino #define TARGET_SUBTARGET64_DEFAULT \ 81*e4b17023SJohn Marino MASK_128BIT_LONG_DOUBLE 82