📄 portability.texi
字号:
@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,@c 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.@c This is part of the GCC manual.@c For copying conditions, see the file gcc.texi.@node Portability@chapter GCC and Portability@cindex portability@cindex GCC and portabilityGCC itself aims to be portable to any machine where @code{int} is at leasta 32-bit type. It aims to target machines with a flat (non-segmented) byteaddressed data address space (the code address space can be separate).Target ABIs may have 8, 16, 32 or 64-bit @code{int} type. @code{char}can be wider than 8 bits.GCC gets most of the information about the target machine from a machinedescription which gives an algebraic formula for each of the machine'sinstructions. This is a very clean way to describe the target. But whenthe compiler needs information that is difficult to express in thisfashion, ad-hoc parameters have been defined for machine descriptions.The purpose of portability is to reduce the total work needed on thecompiler; it was not of interest for its own sake.@cindex endianness@cindex autoincrement addressing, availability@findex abortGCC does not contain machine dependent code, but it does contain codethat depends on machine parameters such as endianness (whether the mostsignificant byte has the highest or lowest address of the bytes in a word)and the availability of autoincrement addressing. In the RTL-generationpass, it is often necessary to have multiple strategies for generating codefor a particular kind of syntax tree, strategies that are usable for differentcombinations of parameters. Often, not all possible cases have beenaddressed, but only the common ones or only the ones that have beenencountered. As a result, a new target may require additionalstrategies. You will knowif this happens because the compiler will call @code{abort}. Fortunately,the new strategies can be added in a machine-independent fashion, and willaffect only the target machines that need them.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -