1 This patch reverts gcc 3.3.4 change which triggers ICE on code using
2 "complex" type - but generated code is _probably wrong_.
3 Proper fix is included in gcc 3.4.0, but it changes ABI.
4 This patch is meant only to provide gcc 3.3.4 on alpha, suitable to
7 --- gcc-3.3.4/gcc/emit-rtl.c.orig 2003-12-10 18:37:18.000000000 +0100
8 +++ gcc-3.3.4/gcc/emit-rtl.c 2004-06-08 14:44:21.000000000 +0200
10 if (base_regno >= FIRST_PSEUDO_REGISTER)
12 if (check_mode && ! HARD_REGNO_MODE_OK (base_regno, GET_MODE (reg)))
14 + { fprintf(stderr, "bad mode: %d\n", GET_MODE (reg)); abort (); }
15 #ifdef ENABLE_CHECKING
16 if (!subreg_offset_representable_p (REGNO (reg), GET_MODE (reg),
17 SUBREG_BYTE (x), mode))
18 --- gcc-3.3.4/gcc/config/alpha/alpha.h.orig 2004-05-28 02:02:03.000000000 +0200
19 +++ gcc-3.3.4/gcc/config/alpha/alpha.h 2004-06-08 15:08:17.000000000 +0200
22 #define HARD_REGNO_MODE_OK(REGNO, MODE) \
23 ((REGNO) >= 32 && (REGNO) <= 62 \
24 - ? (MODE) == SFmode || (MODE) == DFmode || (MODE) == DImode \
25 + ? (MODE) == SFmode || (MODE) == DFmode || (MODE) == DImode || (MODE) == SCmode \
28 /* Value is 1 if MODE is a supported vector mode. */