diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2008-03-23 13:07:34 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2008-03-23 13:07:34 +0100 |
commit | 808e68bbc8deda237cfeb2264816fb0c27500fe0 (patch) | |
tree | e2ba9c107e4221b111a7e826953cf4e0f49ccab2 /gcc/config | |
parent | 47056774217f18dee4804250e5ec5b1e140fcc73 (diff) | |
download | gcc-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.def | 4 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 11 |
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; |