Also turn off OPTION_MASK_ABI_X32 for -m16
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Sep 2014 22:18:06 +0000 (22:18 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Sep 2014 22:18:06 +0000 (22:18 +0000)
PR target/63228
* config/i386/i386.c (ix86_option_override_internal): Also turn
off OPTION_MASK_ABI_X32 for -m16.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215194 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c

index 234ea60..1b07004 100644 (file)
@@ -1,3 +1,9 @@
+2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/63228
+       * config/i386/i386.c (ix86_option_override_internal): Also turn
+       off OPTION_MASK_ABI_X32 for -m16.
+
 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
 
        * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
index 8f45e52..cb308c9 100644 (file)
@@ -3346,8 +3346,9 @@ ix86_option_override_internal (bool main_args_p,
       /* When TARGET_BI_ARCH == 2, by default, OPTION_MASK_ABI_X32 is
         on and OPTION_MASK_ABI_64 is off.  We turn off
         OPTION_MASK_ABI_X32 if OPTION_MASK_ABI_64 is turned on by
-        -m64.  */
-      if (TARGET_LP64_P (opts->x_ix86_isa_flags))
+        -m64 or OPTION_MASK_CODE16 is turned on by -m16.  */
+      if (TARGET_LP64_P (opts->x_ix86_isa_flags)
+         || TARGET_16BIT_P (opts->x_ix86_isa_flags))
        opts->x_ix86_isa_flags &= ~OPTION_MASK_ABI_X32;
 #endif
     }