> src/gcc-4.5.0/libiberty/regex.c: In function 'byte_insert_op2': > /src/gcc-4.5.0/libiberty/regex.c:4279:1: error: unrecognizable insn: > (insn 62 61 63 5 /src/gcc-4.5.0/libiberty/regex.c:4276 (set (reg:DI 135) > (plus:SI (subreg/s:SI (reg/v/f:DI 109 [ pfrom ]) 0) > (const_int 5 [0x5]))) -1 (nil)) > /src/gcc-4.5.0/libiberty/regex.c:4279:1: internal compiler error: in > extract_insn, at recog.c:2103 > Please submit a full bug report, > with preprocessed source if appropriate. > See for instructions. > make: *** [regex.o] Error 1
Fixed by saying make CFLAGS=-mbwx, which enables some byte/word instructions. More information needed? Let's see. Here is the code: /* Like `insert_op1', but for two two-byte parameters ARG1 and ARG2. */ /* ifdef WCHAR, integer parameter is 1 wchar_t. */ static void PREFIX(insert_op2) (re_opcode_t op, UCHAR_T *loc, int arg1, int arg2, UCHAR_T *end) { register UCHAR_T *pfrom = end; register UCHAR_T *pto = end + 1 + 2 * OFFSET_ADDRESS_SIZE; while (pfrom != loc) *--pto = *--pfrom; PREFIX(store_op2) (op, loc, arg1, arg2); } Here is a reduced/preprocessed form that hits the same problem: jbook2:~ jay$ cat re.c typedef unsigned char UCHAR; void insert_op2 (UCHAR *loc, UCHAR *end) { UCHAR *pfrom = end; UCHAR *pto = end + 1; while (pfrom != loc) *--pto = *--pfrom; } jbook2:~ jay$ alpha-dec-vms-gcc -c re.c jbook2:~ jay$ alpha-dec-vms-gcc -c -O2 re.c re.c: In function 'insert_op2': re.c:10:1: error: unrecognizable insn: (insn 58 57 59 5 re.c:9 (set (reg:DI 120) (plus:SI (subreg/s:SI (reg/v/f:DI 108 [ pfrom ]) 0) (const_int 1 [0x1]))) -1 (nil)) re.c:10:1: internal compiler error: in extract_insn, at recog.c:2103 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. jbook2:~ jay$ I opened a bug in the database. - Jay