Files
2024-02-19 00:24:47 -05:00

191 lines
10 KiB
TeX

\unnumbchapentry {GNU GENERAL PUBLIC LICENSE}{1}
\unnumbsecentry{Preamble}{1}
\unnumbsecentry{TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION}{2}
\unnumbsecentry{Appendix: How to Apply These Terms to Your New Programs}{7}
\unnumbchapentry {Contributors to GNU CC}{9}
\chapentry {Protect Your Freedom---Fight ``Look And Feel''}{1}{11}
\chapentry {GNU CC Command Options}{2}{15}
\secentry {Options Controlling the Kind of Output}{2}{1}{18}
\secentry {Options Controlling Dialect}{2}{2}{19}
\secentry {Options to Request or Suppress Warnings}{2}{3}{22}
\secentry {Options for Debugging Your Program or GNU CC}{2}{4}{27}
\secentry {Options That Control Optimization}{2}{5}{30}
\secentry {Options Controlling the Preprocessor}{2}{6}{33}
\secentry {Options for Linking}{2}{7}{35}
\secentry {Options for Directory Search}{2}{8}{37}
\secentry {Specifying Target Machine and Compiler Version}{2}{9}{38}
\secentry {Specifying Hardware Models and Configurations}{2}{10}{39}
\subsecentry {M680x0 Options}{2}{10}{1}{40}
\subsecentry {VAX Options}{2}{10}{2}{41}
\subsecentry {SPARC Options}{2}{10}{3}{41}
\subsecentry {Convex Options}{2}{10}{4}{41}
\subsecentry {AMD29K Options}{2}{10}{5}{42}
\subsecentry {M88K Options}{2}{10}{6}{42}
\subsecentry {IBM RS/6000 Options}{2}{10}{7}{45}
\subsecentry {IBM RT Options}{2}{10}{8}{45}
\subsecentry {MIPS Options}{2}{10}{9}{46}
\subsecentry {Intel 386 Options}{2}{10}{10}{48}
\secentry {Options for Code Generation Conventions}{2}{11}{49}
\secentry {Environment Variables Affecting GNU CC}{2}{12}{51}
\chapentry {Installing GNU CC}{3}{53}
\secentry {Compilation in a Separate Directory}{3}{1}{61}
\secentry {Building and Installing a Cross-Compiler}{3}{2}{61}
\secentry {Installing GNU CC on the HP Precision Architecture}{3}{3}{63}
\secentry {Installing GNU CC on the Sun}{3}{4}{64}
\secentry {Installing GNU CC on the 3b1}{3}{5}{64}
\secentry {Installing GNU CC on Unos}{3}{6}{65}
\secentry {Installing GNU CC on VMS}{3}{7}{65}
\chapentry {GNU Extensions to the C Language}{4}{69}
\secentry {Statements and Declarations within Expressions}{4}{1}{69}
\secentry {Locally Declared Labels}{4}{2}{70}
\secentry {Labels as Values}{4}{3}{71}
\secentry {Nested Functions}{4}{4}{72}
\secentry {Naming an Expression's Type}{4}{5}{74}
\secentry {Referring to a Type with \code {typeof}}{4}{6}{75}
\secentry {Generalized Lvalues}{4}{7}{76}
\secentry {Conditional Expressions with Omitted Operands}{4}{8}{77}
\secentry {Double-Word Integers}{4}{9}{78}
\secentry {Arrays of Length Zero}{4}{10}{78}
\secentry {Arrays of Variable Length}{4}{11}{79}
\secentry {Macros with Variable Numbers of Arguments}{4}{12}{80}
\secentry {Non-Lvalue Arrays May Have Subscripts}{4}{13}{81}
\secentry {Arithmetic on \code {void}- and Function-Pointers}{4}{14}{81}
\secentry {Non-Constant Initializers}{4}{15}{81}
\secentry {Constructor Expressions}{4}{16}{82}
\secentry {Labeled Elements in Initializers}{4}{17}{83}
\secentry {Case Ranges}{4}{18}{84}
\secentry {Cast to a Union Type}{4}{19}{85}
\secentry {Declaring Attributes of Functions}{4}{20}{86}
\secentry {Prototypes and Old-Style Function Definitions}{4}{21}{87}
\secentry {Dollar Signs in Identifier Names}{4}{22}{88}
\secentry {The Character \key {ESC} in Constants}{4}{23}{89}
\secentry {Inquiring on Alignment of Types or Variables}{4}{24}{89}
\secentry {Specifying Attributes of Variables}{4}{25}{89}
\secentry {An Inline Function is As Fast As a Macro}{4}{26}{91}
\secentry {Assembler Instructions with C Expression Operands}{4}{27}{92}
\secentry {Controlling Names Used in Assembler Code}{4}{28}{96}
\secentry {Variables in Specified Registers}{4}{29}{97}
\subsecentry {Defining Global Register Variables}{4}{29}{1}{97}
\subsecentry {Specifying Registers for Local Variables}{4}{29}{2}{99}
\secentry {Alternate Keywords}{4}{30}{100}
\secentry {Incomplete \code {enum} Types}{4}{31}{100}
\chapentry {Known Causes of Trouble with GNU CC}{5}{103}
\secentry {Actual Bugs We Haven't Fixed Yet}{5}{1}{103}
\secentry {Installation Problems}{5}{2}{103}
\secentry {Cross-Compiler Problems}{5}{3}{105}
\secentry {Interoperation}{5}{4}{106}
\secentry {Incompatibilities of GNU CC}{5}{5}{108}
\secentry {Disappointments and Misunderstandings}{5}{6}{110}
\secentry {Certain Changes We Don't Want to Make}{5}{7}{111}
\chapentry {Reporting Bugs}{6}{115}
\secentry {Have You Found a Bug?}{6}{1}{115}
\secentry {Where to Report Bugs}{6}{2}{116}
\secentry {How to Report Bugs}{6}{3}{117}
\secentry {Sending Patches for GNU CC}{6}{4}{120}
\chapentry {How To Get Help with GNU CC}{7}{123}
\chapentry {Using GNU CC on VMS}{8}{125}
\secentry {Include Files and VMS}{8}{1}{125}
\secentry {Global Declarations and VMS}{8}{2}{126}
\secentry {Other VMS Issues}{8}{3}{128}
\chapentry {GNU CC and Portability}{9}{131}
\chapentry {Interfacing to GNU CC Output}{10}{133}
\chapentry {Passes and Files of the Compiler}{11}{135}
\chapentry {RTL Representation}{12}{141}
\secentry {RTL Object Types}{12}{1}{141}
\secentry {Access to Operands}{12}{2}{142}
\secentry {Flags in an RTL Expression}{12}{3}{144}
\secentry {Machine Modes}{12}{4}{148}
\secentry {Constant Expression Types}{12}{5}{151}
\secentry {Registers and Memory}{12}{6}{153}
\secentry {RTL Expressions for Arithmetic}{12}{7}{157}
\secentry {Comparison Operations}{12}{8}{160}
\secentry {Bit Fields}{12}{9}{162}
\secentry {Conversions}{12}{10}{162}
\secentry {Declarations}{12}{11}{164}
\secentry {Side Effect Expressions}{12}{12}{164}
\secentry {Embedded Side-Effects on Addresses}{12}{13}{168}
\secentry {Assembler Instructions as Expressions}{12}{14}{169}
\secentry {Insns}{12}{15}{170}
\secentry {RTL Representation of Function-Call Insns}{12}{16}{178}
\secentry {Structure Sharing Assumptions}{12}{17}{180}
\chapentry {Machine Descriptions}{13}{183}
\secentry {Everything about Instruction Patterns}{13}{1}{183}
\secentry {Example of \code {define\vbox to 0pt{}\kern .06em \vbox {\hrule width.3em height.1ex}insn}}{13}{2}{184}
\secentry {RTL Template for Generating and Recognizing Insns}{13}{3}{185}
\secentry {Output Templates and Operand Substitution}{13}{4}{189}
\secentry {C Statements for Generating Assembler Output}{13}{5}{190}
\secentry {Operand Constraints}{13}{6}{192}
\subsecentry {Simple Constraints}{13}{6}{1}{192}
\subsecentry {Multiple Alternative Constraints}{13}{6}{2}{197}
\subsecentry {Register Class Preferences}{13}{6}{3}{198}
\subsecentry {Constraint Modifier Characters}{13}{6}{4}{198}
\subsecentry {Not Using Constraints}{13}{6}{5}{199}
\secentry {Standard Names for Patterns Used in Generation}{13}{7}{200}
\secentry {When the Order of Patterns Matters}{13}{8}{209}
\secentry {Interdependence of Patterns}{13}{9}{209}
\secentry {Defining Jump Instruction Patterns}{13}{10}{211}
\secentry {Canonicalization of Instructions}{13}{11}{213}
\secentry {Defining Machine-Specific Peephole Optimizers}{13}{12}{215}
\secentry {Defining RTL Sequences for Code Generation}{13}{13}{218}
\secentry {Splitting Instructions into Multiple Instructions}{13}{14}{221}
\secentry {Instruction Attributes}{13}{15}{224}
\subsecentry {Defining Attributes and their Values}{13}{15}{1}{224}
\subsecentry {Attribute Expressions}{13}{15}{2}{225}
\subsecentry {Assigning Attribute Values to Insns}{13}{15}{3}{228}
\subsecentry {Example of Attribute Specifications}{13}{15}{4}{229}
\subsecentry {Computing the Length of an Insn}{13}{15}{5}{231}
\subsecentry {Constant Attributes}{13}{15}{6}{232}
\subsecentry {Delay Slot Scheduling}{13}{15}{7}{233}
\subsecentry {Specifying Function Units}{13}{15}{8}{234}
\chapentry {Target Description Macros}{14}{237}
\secentry {Controlling the Compilation Driver, \file {gcc}}{14}{1}{237}
\secentry {Run-time Target Specification}{14}{2}{241}
\secentry {Storage Layout}{14}{3}{243}
\secentry {Layout of Source Language Data Types}{14}{4}{247}
\secentry {Register Usage}{14}{5}{249}
\subsecentry {Basic Characteristics of Registers}{14}{5}{1}{250}
\subsecentry {Order of Allocation of Registers}{14}{5}{2}{251}
\subsecentry {How Values Fit in Registers}{14}{5}{3}{251}
\subsecentry {Handling Leaf Functions}{14}{5}{4}{253}
\subsecentry {Registers That Form a Stack}{14}{5}{5}{254}
\subsecentry {Obsolete Macros for Controlling Register Usage}{14}{5}{6}{255}
\secentry {Register Classes}{14}{6}{256}
\secentry {Describing Stack Layout and Calling Conventions}{14}{7}{261}
\subsecentry {Basic Stack Layout}{14}{7}{1}{261}
\subsecentry {Registers That Address the Stack Frame}{14}{7}{2}{262}
\subsecentry {Eliminating Frame Pointer and Arg Pointer}{14}{7}{3}{264}
\subsecentry {Passing Function Arguments on the Stack}{14}{7}{4}{265}
\subsecentry {Passing Arguments in Registers}{14}{7}{5}{267}
\subsecentry {How Scalar Function Values Are Returned}{14}{7}{6}{270}
\subsecentry {How Large Values Are Returned}{14}{7}{7}{272}
\subsecentry {Caller-Saves Register Allocation}{14}{7}{8}{273}
\subsecentry {Function Entry and Exit}{14}{7}{9}{273}
\subsecentry {Generating Code for Profiling}{14}{7}{10}{276}
\secentry {Implementing the Varargs Macros}{14}{8}{277}
\secentry {Trampolines for Nested Functions}{14}{9}{280}
\secentry {Implicit Calls to Library Routines}{14}{10}{282}
\secentry {Addressing Modes}{14}{11}{285}
\secentry {Condition Code Status}{14}{12}{288}
\secentry {Describing Relative Costs of Operations}{14}{13}{289}
\secentry {Dividing the Output into Sections (Texts, Data, \dots{})}{14}{14}{292}
\secentry {Position Independent Code}{14}{15}{294}
\secentry {Defining the Output Assembler Language}{14}{16}{295}
\subsecentry {The Overall Framework of an Assembler File}{14}{16}{1}{295}
\subsecentry {Output of Data}{14}{16}{2}{296}
\subsecentry {Output of Uninitialized Variables}{14}{16}{3}{298}
\subsecentry {Output and Generation of Labels}{14}{16}{4}{299}
\subsecentry {Output of Initialization Routines}{14}{16}{5}{302}
\subsecentry {Output of Assembler Instructions}{14}{16}{6}{304}
\subsecentry {Output of Dispatch Tables}{14}{16}{7}{306}
\subsecentry {Assembler Commands for Alignment}{14}{16}{8}{307}
\secentry {Controlling Debugging Information Format}{14}{17}{308}
\subsecentry {Macros Affecting All Debugging Formats}{14}{17}{1}{308}
\subsecentry {Specific Options for DBX Output}{14}{17}{2}{309}
\subsecentry {Open-Ended Hooks for DBX Format}{14}{17}{3}{311}
\subsecentry {File Names in DBX Format}{14}{17}{4}{312}
\subsecentry {Macros for SDB and DWARF Output}{14}{17}{5}{313}
\secentry {Cross Compilation and Floating Point Format}{14}{18}{314}
\secentry {Miscellaneous Parameters}{14}{19}{316}
\chapentry {The Configuration File}{15}{321}
\unnumbchapentry {Index}{325}