gcc

~vcs-imports/gcc/+git/gcc:hjl/iamcu/gcc-4_9-branch

Last commit made on 2015-05-27
Get this branch:
git clone -b hjl/iamcu/gcc-4_9-branch https://git.launchpad.net/~vcs-imports/gcc/+git/gcc

Branch merges

Branch information

Name:
hjl/iamcu/gcc-4_9-branch
Repository:
lp:~vcs-imports/gcc/+git/gcc

Recent commits

a5dd47d... by "H.J. Lu" <email address hidden>

Add Intel MCU psABI testsuite

We run Intel MCU psABI tests on Linux/ia32 with -miamcu. Since Intel
MCU psABI has a different calling convention, the only Linux libc function
allowed is "abort".

asm-support.S contains some support functions as well as a subset of
soft-fp, which is written in assembly with x87 instructions, to provide
intrinsics needed by -miamcu so that Intel MCU psABI tests can run on
Linux.

 * gcc.target/i386/iamcu/abi-iamcu.exp: New file.
 * gcc.target/i386/iamcu/args.h: Likewise.
 * gcc.target/i386/iamcu/asm-support.S: Likewise.
 * gcc.target/i386/iamcu/defines.h: Likewise.
 * gcc.target/i386/iamcu/macros.h: Likewise.
 * gcc.target/i386/iamcu/test_3_element_struct_and_unions.c: Likewise.
 * gcc.target/i386/iamcu/test_basic_64bit_returning.c: Likewise.
 * gcc.target/i386/iamcu/test_basic_alignment.c: Likewise.
 * gcc.target/i386/iamcu/test_basic_array_size_and_align.c: Likewise.
 * gcc.target/i386/iamcu/test_basic_returning.c: Likewise.
 * gcc.target/i386/iamcu/test_basic_sizes.c: Likewise.
 * gcc.target/i386/iamcu/test_basic_struct_size_and_align.c: Likewise.
 * gcc.target/i386/iamcu/test_basic_union_size_and_align.c: Likewise.
 * gcc.target/i386/iamcu/test_bitfields.c: Likewise.
 * gcc.target/i386/iamcu/test_complex_returning.c: Likewise.
 * gcc.target/i386/iamcu/test_passing_floats.c: Likewise.
 * gcc.target/i386/iamcu/test_passing_integers.c: Likewise.
 * gcc.target/i386/iamcu/test_passing_structs.c: Likewise.
 * gcc.target/i386/iamcu/test_passing_structs_and_unions.c: Likewise.
 * gcc.target/i386/iamcu/test_passing_unions.c: Likewise.
 * gcc.target/i386/iamcu/test_struct_returning.c: Likewise.
 * gcc.target/i386/iamcu/test_varargs.c: Likewise.

9a427c2... by "H.J. Lu" <email address hidden>

Verify that x87/MMX/SSE/AVX is off for -miamcu

Intel MCU doesn't support x87/MMX/SSE/AVX. We should verify that they
aren't turned on when -miamcu is used.

 * config/i386/i386.c (ix86_option_override_internal): Issue an
 error if x87, MMX, SSE or AVX is turned on when -miamcu is used.

d33f0aa... by "H.J. Lu" <email address hidden>

Issue an error when -miamcu is used in 64-bit/x32 mode

Intel MCU psABI is 32-bit only and can't be used in 64-bit nor x32 mode.
Issue an error when -miamcu is used in 64-bit or x32 mode.

 * config/i386/i386.c (ix86_option_override_internal): Issue an
 error when -miamcu is used in 64-bit or x32 mode.

e71bbe1... by "H.J. Lu" <email address hidden>

Turn off X87/MMX/SSE/AVX codegen for -miamcu

Intel MCU doesn't support x87/MMX/SSE/AVX. -miamcu should turn them off.

 * common/config/i386/i386-common.c (ix86_handle_option): Turn
 off x87/MMX/SSE/AVX codegen for -miamcu.

4356ce5... by "H.J. Lu" <email address hidden>

Pass/return values <= 8 bytes in registers

Intel MCU psABI passes/returns scalars and aggregates no larger than 8
bytes in registers.

 * config/i386/i386.c (function_arg_advance_32): Pass value whose
 size is no larger than 8 bytes in registers for Intel MCU.
 (function_arg_32): Likewise.
 (return_in_memory_32): Return value whose size is no larger
 than 8 bytes in registers for Intel MCU.

387c146... by "H.J. Lu" <email address hidden>

Enable decimal floating point for Intel MCU

Intel MCU psABI supports decimal floating point. This patch enables
decimal floating point for Intel MCU.

config/

 * dfp.m4 (enable_decimal_float): Also set to yes for
  i?86*-*-elfiamcu target.

gcc/

 * configure: Regenerated.

libdecnumber/

 * configure: Regenerated.

libgcc/

 * config.host (tmake_file): Add t-dfprules for
 i[34567]86-*-elfiamcu target.
 * configure: Regenerated.

8515422... by "H.J. Lu" <email address hidden>

Turn on -freg-struct-return for -miamcu

Intel MCU psABI specifies that -freg-struct-return should be on.
Instead of setting DEFAULT_PCC_STRUCT_RETURN to 1, we check
-miamcu so that -freg-struct-return is always turned on if
-miamcu is used.

 * config/i386/i386.c (ix86_option_override_internal): Turn on
 -freg-struct-return for Intel MCU.

c14fa45... by "H.J. Lu" <email address hidden>

Make long double to 64-bit for Intel MCU

Intel MCU psABI specifies long double is the same as double. This
patch defaults long double to 64-bit for Intel MCU.

 * config/i386/i386.c (ix86_option_override_internal): Default
 long double to 64-bit for Intel MCU.

5e5d104... by "H.J. Lu" <email address hidden>

Enable -mregparm=3 for Intel MCU by default

Intel MCU psABI uses the first 3 integer registers to pass paramters.
This patch enables -mregparm=3 for Intel MCU by default.

 * config/i386/i386.c (ix86_option_override_internal): Ignore
 and warn -mregparm for Intel MCU. Turn on -mregparm=3 for Intel
 MCU by default.

83239ee... by "H.J. Lu" <email address hidden>

Don't increase alignments of objects on stack

We should never increase alignments of objects on stack for Intel MCU.
There is nothing to gain.

 * config/i386/i386.c (ix86_local_alignment): Don't increase
 alignment for Intel MCU.