diff options
author | Eric Botcazou <ebotcazou@act-europe.fr> | 2004-03-15 22:06:45 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2004-03-15 21:06:45 +0000 |
commit | ed38d6fe91424c7e84f464a9b883b1b3b24a5f2d (patch) | |
tree | 30e1b9a7762c75df9ed61ce4757825f3ce4fdba1 | |
parent | 68a1af8795e896c86b0ff44662e6dc47e8b119ae (diff) | |
download | gcc-ed38d6fe91424c7e84f464a9b883b1b3b24a5f2d.zip gcc-ed38d6fe91424c7e84f464a9b883b1b3b24a5f2d.tar.gz gcc-ed38d6fe91424c7e84f464a9b883b1b3b24a5f2d.tar.bz2 |
sparc.h: Rework comments about the code model in 64-bit environment and the mode 'Pmode'.
* config/sparc/sparc.h: Rework comments about the code model
in 64-bit environment and the mode 'Pmode'.
* doc/invoke.texi (SPARC options): Rework description of the
different code models supported in 64-bit environment.
From-SVN: r79509
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.h | 68 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 30 |
3 files changed, 58 insertions, 47 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0437bfd..1f60368 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-03-15 Eric Botcazou <ebotcazou@act-europe.fr> + + * config/sparc/sparc.h: Rework comments about the code model + in 64-bit environment and the mode 'Pmode'. + * doc/invoke.texi (SPARC options): Rework description of the + different code models supported in 64-bit environment. + 2004-03-15 Kazu Hirata <kazu@cs.umass.edu> * defaults.h (REVERSIBLE_CC_MODE): Define. diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index 8291f68f..44776c7 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -69,35 +69,41 @@ Boston, MA 02111-1307, USA. */ #endif /* IN_LIBGCC2 */ #define TARGET_ARCH64 (! TARGET_ARCH32) -/* Code model selection. - -mcmodel is used to select the v9 code model. - Different code models aren't supported for v7/8 code. - - TARGET_CM_32: 32 bit address space, top 32 bits = 0, - pointers are 32 bits. Note that this isn't intended - to imply a v7/8 abi. - - TARGET_CM_MEDLOW: 32 bit address space, top 32 bits = 0, - avoid generating %uhi and %ulo terms, - pointers are 64 bits. - - TARGET_CM_MEDMID: 64 bit address space. - The executable must be in the low 16 TB of memory. - This corresponds to the low 44 bits, and the %[hml]44 - relocs are used. The text segment has a maximum size - of 31 bits. - - TARGET_CM_MEDANY: 64 bit address space. - The text and data segments have a maximum size of 31 - bits and may be located anywhere. The maximum offset - from any instruction to the label _GLOBAL_OFFSET_TABLE_ - is 31 bits. - - TARGET_CM_EMBMEDANY: 64 bit address space. - The text and data segments have a maximum size of 31 bits - and may be located anywhere. Register %g4 contains - the start address of the data segment. -*/ +/* Code model selection in 64-bit environment. + + The machine mode used for addresses is 32-bit wide: + + TARGET_CM_32: 32-bit address space. + It is the code model used when generating 32-bit code. + + The machine mode used for addresses is 64-bit wide: + + TARGET_CM_MEDLOW: 32-bit address space. + The executable must be in the low 32 bits of memory. + This avoids generating %uhi and %ulo terms. Programs + can be statically or dynamically linked. + + TARGET_CM_MEDMID: 44-bit address space. + The executable must be in the low 44 bits of memory, + and the %[hml]44 terms are used. The text and data + segments have a maximum size of 2GB (31-bit span). + The maximum offset from any instruction to the label + _GLOBAL_OFFSET_TABLE_ is 2GB (31-bit span). + + TARGET_CM_MEDANY: 64-bit address space. + The text and data segments have a maximum size of 2GB + (31-bit span) and may be located anywhere in memory. + The maximum offset from any instruction to the label + _GLOBAL_OFFSET_TABLE_ is 2GB (31-bit span). + + TARGET_CM_EMBMEDANY: 64-bit address space. + The text and data segments have a maximum size of 2GB + (31-bit span) and may be located anywhere in memory. + The global register %g4 contains the start address of + the data segment. Programs are statically linked and + PIC is not supported. + + Different code models are not supported in 32-bit environment. */ enum cmodel { CM_32, @@ -2212,9 +2218,7 @@ do { \ is done just by pretending it is already truncated. */ #define TRULY_NOOP_TRUNCATION(OUTPREC, INPREC) 1 -/* Specify the machine mode that pointers have. - After generation of rtl, the compiler makes no further distinction - between pointers and any other objects of this machine mode. */ +/* Specify the machine mode used for addresses. */ #define Pmode (TARGET_ARCH64 ? DImode : SImode) /* Generate calls to memcpy, memcmp and memset. */ diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 910dfc2..03aa5f8 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -6360,31 +6360,31 @@ to 64 bits. @item -mcmodel=medlow @opindex mcmodel=medlow -Generate code for the Medium/Low code model: the program must be linked -in the low 32 bits of the address space. Pointers are 64 bits. -Programs can be statically or dynamically linked. +Generate code for the Medium/Low code model: 64-bit addresses, programs +must be linked in the low 32 bits of memory. Programs can be statically +or dynamically linked. @item -mcmodel=medmid @opindex mcmodel=medmid -Generate code for the Medium/Middle code model: the program must be linked -in the low 44 bits of the address space, the text segment must be less than -2G bytes, and data segment must be within 2G of the text segment. -Pointers are 64 bits. +Generate code for the Medium/Middle code model: 64-bit addresses, programs +must be linked in the low 44 bits of memory, the text and data segments must +be less than 2GB in size and the data segment must be located within 2GB of +the text segment. @item -mcmodel=medany @opindex mcmodel=medany -Generate code for the Medium/Anywhere code model: the program may be linked -anywhere in the address space, the text segment must be less than -2G bytes, and data segment must be within 2G of the text segment. -Pointers are 64 bits. +Generate code for the Medium/Anywhere code model: 64-bit addresses, programs +may be linked anywhere in memory, the text and data segments must be less +than 2GB in size and the data segment must be located within 2GB of the +text segment. @item -mcmodel=embmedany @opindex mcmodel=embmedany Generate code for the Medium/Anywhere code model for embedded systems: -assume a 32-bit text and a 32-bit data segment, both starting anywhere -(determined at link time). Register %g4 points to the base of the -data segment. Pointers are still 64 bits. -Programs are statically linked, PIC is not supported. +64-bit addresses, the text and data segments must be less than 2GB in +size, both starting anywhere in memory (determined at link time). The +global register %g4 points to the base of the data segment. Programs +are statically linked and PIC is not supported. @item -mstack-bias @itemx -mno-stack-bias |