aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/rs6000.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2010-09-09 12:00:54 +0930
committerAlan Modra <amodra@gcc.gnu.org>2010-09-09 12:00:54 +0930
commit5a79bcc454b5792db3471c4deba84630b2c26dd7 (patch)
tree973fb37729da99edb86f368e6501cb1f8334f719 /gcc/config/rs6000/rs6000.h
parentf5b281c0ed43ec7ac3e5851e28bcc5825aa26c6b (diff)
downloadgcc-5a79bcc454b5792db3471c4deba84630b2c26dd7.zip
gcc-5a79bcc454b5792db3471c4deba84630b2c26dd7.tar.gz
gcc-5a79bcc454b5792db3471c4deba84630b2c26dd7.tar.bz2
invoke.text: Reinstate mcmodel=medium.
* doc/invoke.text: Reinstate mcmodel=medium. * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set CMODEL_MEDIUM as default. * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM. * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium. (toc_relative_ok, offsettable_ok_by_alignment): New functions. (rs6000_emit_move): Reinstate mcmodel=medium optimization. From-SVN: r164045
Diffstat (limited to 'gcc/config/rs6000/rs6000.h')
-rw-r--r--gcc/config/rs6000/rs6000.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 3ce011f..63f1bba 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -297,9 +297,11 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
/* Code model for 64-bit linux.
small: 16-bit toc offsets.
- large: 32-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. */
enum rs6000_cmodel {
CMODEL_SMALL,
+ CMODEL_MEDIUM,
CMODEL_LARGE
};