diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7e6a049..04f1414 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Sat Oct 20 15:16:10 CEST 2001 Jan Hubicka <jh@suse.cz> + + * i386.c (split_di): Handle splitting of DFmode. + Sat Oct 20 07:27:14 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * emit-rtl.c (set_mem_attributes): Alignment is in bits. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index b9f1470..c08d1302 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -5937,8 +5937,12 @@ split_di (operands, num, lo_half, hi_half) } else { - lo_half[num] = simplify_gen_subreg (SImode, op, DImode, 0); - hi_half[num] = simplify_gen_subreg (SImode, op, DImode, 4); + lo_half[num] = simplify_gen_subreg (SImode, op, + GET_MODE (op) == VOIDmode + ? DImode : GET_MODE (op), 0); + hi_half[num] = simplify_gen_subreg (SImode, op, + GET_MODE (op) == VOIDmode + ? DImode : GET_MODE (op), 4); } } } |