Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:lafenghu
libgcj43
ibm311554-ltoc-r161370:161371
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ibm311554-ltoc-r161370:161371 of Package libgcj43
2010-06-25 Alan Modra <amodra@gmail.com> * doc/invoke.texi: Delete mcmodel=medium from powerpc options. * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM. * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set CMODEL_LARGE as default. * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium. (offsettable_ok_by_alignment): Delete. (rs6000_emit_move): Remove mcmodel=medium optimization. Index: gcc/doc/invoke.texi =================================================================== --- gcc/doc/invoke.texi (revision 161370) +++ gcc/doc/invoke.texi (revision 161371) @@ -14987,11 +14987,6 @@ scheduling parameters set by @option{-mt Generate PowerPC64 code for the small model: The TOC is limited to 64k. -@item -mcmodel=medium -@opindex mcmodel=medium -Generate PowerPC64 code for the medium model: The TOC and other static -data may be up to a total of 4G in size. - @item -mcmodel=large @opindex mcmodel=large Generate PowerPC64 code for the large model: The TOC may be up to 4G Index: gcc/config/rs6000/linux64.h =================================================================== --- gcc/config/rs6000/linux64.h (revision 161370) +++ gcc/config/rs6000/linux64.h (revision 161371) @@ -134,7 +134,7 @@ extern enum rs6000_cmodel cmodel; else \ { \ if (!rs6000_explicit_options.cmodel) \ - SET_CMODEL (CMODEL_MEDIUM); \ + SET_CMODEL (CMODEL_LARGE); \ if (cmodel != CMODEL_SMALL) \ { \ TARGET_NO_FP_IN_TOC = 0; \ Index: gcc/config/rs6000/rs6000.c =================================================================== --- gcc/config/rs6000/rs6000.c (revision 161370) +++ gcc/config/rs6000/rs6000.c (revision 161371) @@ -3653,8 +3653,6 @@ rs6000_handle_option (size_t code, const case OPT_mcmodel_: if (strcmp (arg, "small") == 0) cmodel = CMODEL_SMALL; - else if (strcmp (arg, "medium") == 0) - cmodel = CMODEL_MEDIUM; else if (strcmp (arg, "large") == 0) cmodel = CMODEL_LARGE; else @@ -6636,36 +6634,6 @@ rs6000_eliminate_indexed_memrefs (rtx op copy_addr_to_reg (XEXP (operands[1], 0))); } -/* Return true if memory accesses to DECL are known to never straddle - a 32k boundary. */ - -static bool -offsettable_ok_by_alignment (tree decl) -{ - unsigned HOST_WIDE_INT dsize; - - /* Presume any compiler generated symbol_ref is suitably aligned. */ - if (!decl) - return true; - - if (TREE_CODE (decl) != VAR_DECL - && TREE_CODE (decl) != PARM_DECL - && TREE_CODE (decl) != RESULT_DECL - && TREE_CODE (decl) != FIELD_DECL) - return true; - - if (!host_integerp (DECL_SIZE_UNIT (decl), 1)) - return false; - - dsize = tree_low_cst (DECL_SIZE_UNIT (decl), 1); - if (dsize <= 1) - return true; - if (dsize > 32768) - return false; - - return DECL_ALIGN_UNIT (decl) >= dsize; -} - /* Emit a move from SOURCE to DEST in mode MODE. */ void rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode) @@ -6979,16 +6947,11 @@ rs6000_emit_move (rtx dest, rtx source, /* If this is a SYMBOL_REF that refers to a constant pool entry, and we have put it in the TOC, we just need to make a TOC-relative reference to it. */ - if ((TARGET_TOC - && GET_CODE (operands[1]) == SYMBOL_REF - && constant_pool_expr_p (operands[1]) - && ASM_OUTPUT_SPECIAL_POOL_ENTRY_P (get_pool_constant (operands[1]), - get_pool_mode (operands[1]))) - || (TARGET_CMODEL == CMODEL_MEDIUM - && GET_CODE (operands[1]) == SYMBOL_REF - && !CONSTANT_POOL_ADDRESS_P (operands[1]) - && SYMBOL_REF_LOCAL_P (operands[1]) - && offsettable_ok_by_alignment (SYMBOL_REF_DECL (operands[1])))) + if (TARGET_TOC + && GET_CODE (operands[1]) == SYMBOL_REF + && constant_pool_expr_p (operands[1]) + && ASM_OUTPUT_SPECIAL_POOL_ENTRY_P (get_pool_constant (operands[1]), + get_pool_mode (operands[1]))) { rtx reg = NULL_RTX; if (TARGET_CMODEL != CMODEL_SMALL) Index: gcc/config/rs6000/rs6000.h =================================================================== --- gcc/config/rs6000/rs6000.h (revision 161370) +++ gcc/config/rs6000/rs6000.h (revision 161371) @@ -295,11 +295,9 @@ extern const char *host_detect_local_cpu /* Code model for 64-bit linux. small: 16-bit toc offsets. - medium: 32-bit toc offsets, static data and code within 2G of TOC pointer. - large: 32-bit toc offsets, no limit on static data and code. */ + large: 32-bit toc offsets. */ enum rs6000_cmodel { CMODEL_SMALL, - CMODEL_MEDIUM, CMODEL_LARGE };
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor