diff options
author | Jan Hubicka <jh@suse.cz> | 2007-03-06 17:38:43 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2007-03-06 16:38:43 +0000 |
commit | dc4d7240dccb7d7bb0d39525e07f145092f587dc (patch) | |
tree | f70d17a85450e10da77bd234ac14b80b870a2903 /gcc/doc | |
parent | 80fd744fdae18292b5cb67cebceea8b750656c40 (diff) | |
download | gcc-dc4d7240dccb7d7bb0d39525e07f145092f587dc.zip gcc-dc4d7240dccb7d7bb0d39525e07f145092f587dc.tar.gz gcc-dc4d7240dccb7d7bb0d39525e07f145092f587dc.tar.bz2 |
reg-stack.c (reg_to_stack): Large models don't allow NAN to be loaded for constant large models.
* reg-stack.c (reg_to_stack): Large models don't allow NAN to be
loaded for constant large models. Non-large 64bit PIC can do.
* i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
* cmodel.h: Add LARGE PIC.
* i386.md (UNSPEC_PLTOFF): New.
(UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other unspecs as
needed.
(*call_1_rex64): Disable for large models.
(*call_1_rex64_large): New.
(*call_value_1_rex64): Disable for large models.
(*call_value_1_rex64_large): New.
(set_rip_rex4): New.
(set_got_offset_rex64): New.
* predicates.md (constant_call_address_operand): For large model
constant calls are not possible.
* i386-protos.h (construct_plt_address): Declare.
* i386.c (override_options): Accept large models.
(ix86_expand_prologue): Expand large PIC GOT pointer load.
(legitimate_constant_p): Add new UNSPECs.
(legitimate_pic_operand_p): Likewise.
(legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
(legitimize_pic_address): Do easy RIP relative way for TLS only for
non-large model.
(output_pic_addr_const): Add PLTOFF.
(ix86_output_addr_diff_elt): Output 64bit tables when needed.
(ix86_expand_move): Legitimize pic address when in PIC mode.
(construct_plt_address): New function.
(ix86_expand_call): Offload the address to register and use GOT pointer
for large model.
* invoke.texi (mcmodel=large): Update documentation.
From-SVN: r122623
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/invoke.texi | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 84dd396..7e15dbf 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -10142,8 +10142,7 @@ building of shared libraries are not supported with the medium model. @item -mcmodel=large @opindex mcmodel=large Generate code for the large model: This model makes no assumptions -about addresses and sizes of sections. Currently GCC does not implement -this model. +about addresses and sizes of sections. @end table @node IA-64 Options |