diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 315e7486815..2d204bb7ed4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +1999-12-12 Stephen L Moshier + + * loop.c (load_mems): Don't hoist written floating point mem + if -ffloat-store. + 1999-12-12 Mark Mitchell * except.h (struct eh_queue): Add `next' pointer. diff --git a/gcc/loop.c b/gcc/loop.c index e509cb15d1b..016dc75ae06 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -9825,7 +9825,11 @@ load_mems (scan_start, end, loop_top, start) } mem_list_entry = XEXP (mem_list_entry, 1); } - + + if (flag_float_store && written + && GET_MODE_CLASS (GET_MODE (mem)) == MODE_FLOAT) + loop_mems[i].optimize = 0; + /* If this MEM is written to, we must be sure that there are no reads from another MEM that aliases this one. */ if (loop_mems[i].optimize && written)