summaryrefslogtreecommitdiff
path: root/gcc/config/i386/i386.opt
diff options
context:
space:
mode:
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>2015-06-30 16:40:19 +0000
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>2015-06-30 16:40:19 +0000
commit1c26a2eecb5e772ca2639b2201d593c9a4afdd69 (patch)
tree4b11edb9006a44c882a5134990b54d722da2f220 /gcc/config/i386/i386.opt
parent754e0869048f4c058982b3b75300fb0eb555b79d (diff)
downloadgcc-1c26a2eecb5e772ca2639b2201d593c9a4afdd69.tar.gz
IA MCU psABI support: GCC changes
This patch introduces basic IA MCU psABI support into GCC. * configure.ac (ospace_frag): Enable for i?86*-*-elfiamcu target. * configure: Regenerate. gcc/ * config.gcc: Support i[34567]86-*-elfiamcu target. * config/i386/iamcu.h: New. * config/i386/i386.opt: Add -miamcu. * doc/invoke.texi: Document -miamcu. * common/config/i386/i386-common.c (ix86_handle_option): Turn off x87/MMX/SSE/AVX codegen for -miamcu. * config/i386/i386-c.c (ix86_target_macros_internal): Define __iamcu/__iamcu__ for -miamcu. * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set to MIN_STACK_BOUNDARY if TARGET_IAMCU is true. (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true. * config/i386/i386.c (ix86_option_override_internal): Ignore and warn -mregparm for Intel MCU. Turn on -mregparm=3 for Intel MCU by default. Default long double to 64-bit for Intel MCU. Turn on -freg-struct-return for Intel MCU. Issue an error when -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or AVX is turned on. (function_arg_advance_32): Pass value whose size is no larger than 8 bytes in registers for Intel MCU. (function_arg_32): Likewise. (ix86_return_in_memory): Return value whose size is no larger than 8 bytes in registers for Intel MCU. (iamcu_alignment): New function. (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is true. (ix86_local_alignment): Don't increase alignment for Intel MCU. (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is true. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225197 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/i386.opt')
-rw-r--r--gcc/config/i386/i386.opt4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt
index dd46e26de39..042f3c1ab20 100644
--- a/gcc/config/i386/i386.opt
+++ b/gcc/config/i386/i386.opt
@@ -514,6 +514,10 @@ Clear all tune features
mdump-tune-features
Target RejectNegative Var(ix86_dump_tunes) Init(0)
+miamcu
+Target Report Mask(IAMCU)
+Generate code that conforms to Intel MCU psABI
+
mabi=
Target RejectNegative Joined Var(ix86_abi) Enum(calling_abi) Init(SYSV_ABI)
Generate code that conforms to the given ABI