xref: /dflybsd-src/contrib/gcc-4.7/gcc/config/i386/unix.h (revision 04febcfb30580676d3e95f58a16c5137ee478b32)
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