diff options
author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-11-10 16:52:50 +0000 |
---|---|---|
committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-11-10 16:52:50 +0000 |
commit | 77f1b1bb0779a6bc2d83344abac852797739256b (patch) | |
tree | e3d180fb52be941078efe7fa4bcca0c71faa1a38 /gcc/calls.c | |
parent | c86f4c75645cdd38254700ada0b489d1ee20856b (diff) | |
download | gcc-77f1b1bb0779a6bc2d83344abac852797739256b.tar.gz |
* calls.c (store_unaligned_arguments_into_pseudos): Deal only with
values living in memory and use more precise alignment information.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141742 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index a3d35b3bf5c..096dde4948c 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -837,7 +837,8 @@ store_unaligned_arguments_into_pseudos (struct arg_data *args, int num_actuals) for (i = 0; i < num_actuals; i++) if (args[i].reg != 0 && ! args[i].pass_on_stack && args[i].mode == BLKmode - && (TYPE_ALIGN (TREE_TYPE (args[i].tree_value)) + && MEM_P (args[i].value) + && (MEM_ALIGN (args[i].value) < (unsigned int) MIN (BIGGEST_ALIGNMENT, BITS_PER_WORD))) { int bytes = int_size_in_bytes (TREE_TYPE (args[i].tree_value)); |