bsd.h revision 117395
1178476Sjb/* Definitions for BSD assembler syntax for Intel 386 2178476Sjb (actually AT&T syntax for insns and operands, 3178476Sjb adapted to BSD conventions for symbol names and debugging.) 4178476Sjb Copyright (C) 1988, 1996, 2000, 2002 Free Software Foundation, Inc. 5178476Sjb 6178476SjbThis file is part of GNU CC. 7178476Sjb 8178476SjbGNU CC is free software; you can redistribute it and/or modify 9178476Sjbit under the terms of the GNU General Public License as published by 10178476Sjbthe Free Software Foundation; either version 2, or (at your option) 11178476Sjbany later version. 12178476Sjb 13178476SjbGNU CC is distributed in the hope that it will be useful, 14178476Sjbbut WITHOUT ANY WARRANTY; without even the implied warranty of 15178476SjbMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16178476SjbGNU General Public License for more details. 17178476Sjb 18178476SjbYou should have received a copy of the GNU General Public License 19178476Sjbalong with GNU CC; see the file COPYING. If not, write to 20178476Sjbthe Free Software Foundation, 59 Temple Place - Suite 330, 21178476SjbBoston, MA 02111-1307, USA. */ 22178476Sjb 23178476Sjb/* Use the Sequent Symmetry assembler syntax. */ 24178476Sjb 25178476Sjb/* Define the syntax of pseudo-ops, labels and comments. */ 26178476Sjb 27178476Sjb/* Prefix for internally generated assembler labels. If we aren't using 28178476Sjb underscores, we are using prefix `.'s to identify labels that should 29178476Sjb be ignored, as in `i386/gas.h' --karl@cs.umb.edu */ 30178476Sjb 31178476Sjb#define LPREFIX "L" 32178476Sjb 33178476Sjb/* Assembler pseudos to introduce constants of various size. */ 34178476Sjb 35178476Sjb#define ASM_SHORT "\t.word\t" 36178476Sjb#define ASM_LONG "\t.long\t" 37178476Sjb#define ASM_QUAD "\t.quad\t" /* Should not be used for 32bit compilation. */ 38178476Sjb 39178476Sjb/* Output at beginning of assembler file. 40178476Sjb ??? I am skeptical of this -- RMS. */ 41178476Sjb 42178476Sjb#define ASM_FILE_START(FILE) \ 43178476Sjb do { output_file_directive (FILE, main_input_filename); \ 44178476Sjb } while (0) 45178476Sjb 46178476Sjb/* This was suggested, but it shouldn't be right for DBX output. -- RMS 47178476Sjb #define ASM_OUTPUT_SOURCE_FILENAME(FILE, NAME) */ 48178476Sjb 49178476Sjb 50178476Sjb/* Define the syntax of labels and symbol definitions/declarations. */ 51178476Sjb 52178476Sjb/* This is how to output an assembler line 53178476Sjb that says to advance the location counter by SIZE bytes. */ 54178476Sjb 55178476Sjb#define ASM_OUTPUT_SKIP(FILE,SIZE) \ 56178476Sjb fprintf (FILE, "\t.space %u\n", (SIZE)) 57178476Sjb 58178476Sjb/* Define the syntax of labels and symbol definitions/declarations. */ 59178476Sjb 60178476Sjb/* This says how to output an assembler line 61178476Sjb to define a global common symbol. */ 62178476Sjb 63178476Sjb#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \ 64178476Sjb( fputs (".comm ", (FILE)), \ 65178476Sjb assemble_name ((FILE), (NAME)), \ 66178476Sjb fprintf ((FILE), ",%u\n", (ROUNDED))) 67178476Sjb 68178476Sjb/* This says how to output an assembler line 69178476Sjb to define a local common symbol. */ 70178476Sjb 71178476Sjb#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \ 72178476Sjb( fputs (".lcomm ", (FILE)), \ 73178476Sjb assemble_name ((FILE), (NAME)), \ 74178476Sjb fprintf ((FILE), ",%u\n", (ROUNDED))) 75178476Sjb 76178476Sjb/* This is how to output an assembler line 77178476Sjb that says to advance the location counter 78178476Sjb to a multiple of 2**LOG bytes. */ 79178476Sjb 80#define ASM_OUTPUT_ALIGN(FILE,LOG) \ 81 if ((LOG)!=0) fprintf ((FILE), "\t.align %d\n", (LOG)) 82 83/* This is how to store into the string BUF 84 the symbol_ref name of an internal numbered label where 85 PREFIX is the class of label and NUM is the number within the class. 86 This is suitable for output with `assemble_name'. */ 87 88#define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER) \ 89 sprintf ((BUF), "*%s%ld", (PREFIX), (long)(NUMBER)) 90 91/* This is how to output an internal numbered label where 92 PREFIX is the class of label and NUM is the number within the class. */ 93 94#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \ 95 fprintf (FILE, "%s%d:\n", PREFIX, NUM) 96 97/* The prefix to add to user-visible assembler symbols. */ 98 99#define USER_LABEL_PREFIX "_" 100 101/* Sequent has some changes in the format of DBX symbols. */ 102#define DBX_NO_XREFS 1 103 104/* Don't split DBX symbols into continuations. */ 105#define DBX_CONTIN_LENGTH 0 106