aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2008-03-23 13:07:34 +0100
committerUros Bizjak <uros@gcc.gnu.org>2008-03-23 13:07:34 +0100
commit808e68bbc8deda237cfeb2264816fb0c27500fe0 (patch)
treee2ba9c107e4221b111a7e826953cf4e0f49ccab2 /gcc/config
parent47056774217f18dee4804250e5ec5b1e140fcc73 (diff)
downloadgcc-808e68bbc8deda237cfeb2264816fb0c27500fe0.zip
gcc-808e68bbc8deda237cfeb2264816fb0c27500fe0.tar.gz
gcc-808e68bbc8deda237cfeb2264816fb0c27500fe0.tar.bz2
Revert:
2008-03-05 H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386-modes.def: Use 4 byte alignment on DI for 32bit host. 2008-03-19 Uros Bizjak <ubizjak@gmail.com> PR target/35496 * stor-layout.c (update_alignment_for_field): Set minimum alignment of the underlying type of a MS bitfield layout to the natural alignment of the type. 2008-03-22 Uros Bizjak <ubizjak@gmail.com> * config/i386/i386.c (assign_386_stack_local): Align DImode slots to their natural alignment to avoid store forwarding stalls. From-SVN: r133461
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/i386/i386-modes.def4
-rw-r--r--gcc/config/i386/i386.c11
2 files changed, 1 insertions, 14 deletions
diff --git a/gcc/config/i386/i386-modes.def b/gcc/config/i386/i386-modes.def
index d94b1b9..9be7498 100644
--- a/gcc/config/i386/i386-modes.def
+++ b/gcc/config/i386/i386-modes.def
@@ -17,10 +17,6 @@ You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
-/* In 32bit, DI mode uses 32bit registers. Only 4 byte alignment
- is needed. */
-ADJUST_ALIGNMENT (DI, (TARGET_64BIT || TARGET_ALIGN_DOUBLE) ? 8 : 4);
-
/* The x86_64 ABI specifies both XF and TF modes.
XFmode is __float80 is IEEE extended; TFmode is __float128
is IEEE quad. */
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 60c000c..8ddfa9f 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -16315,7 +16315,6 @@ rtx
assign_386_stack_local (enum machine_mode mode, enum ix86_stack_slot n)
{
struct stack_local_entry *s;
- int align;
gcc_assert (n < MAX_386_STACK_LOCALS);
@@ -16326,19 +16325,11 @@ assign_386_stack_local (enum machine_mode mode, enum ix86_stack_slot n)
if (s->mode == mode && s->n == n)
return copy_rtx (s->rtl);
- /* Align DImode slots to their natural alignment
- to avoid store forwarding stalls. */
- if (mode == DImode
- && (GET_MODE_BITSIZE (mode) > GET_MODE_ALIGNMENT (mode)))
- align = GET_MODE_BITSIZE (mode);
- else
- align = 0;
-
s = (struct stack_local_entry *)
ggc_alloc (sizeof (struct stack_local_entry));
s->n = n;
s->mode = mode;
- s->rtl = assign_stack_local (mode, GET_MODE_SIZE (mode), align);
+ s->rtl = assign_stack_local (mode, GET_MODE_SIZE (mode), 0);
s->next = ix86_stack_locals;
ix86_stack_locals = s;