avr-gcc (GCC) 3.4.3 Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiling: igncontrol.c igncontrol.c: In function `__vector_3': igncontrol.c:121: error: unrecognizable insn: (insn 16 14 15 0 igncontrol.c:107 (set (reg:QI 46) (mem:QI (reg/v:HI 2 r2 [ event_ptr ]) [0 S1 A8])) -1 (insn_list 9 (nil)) (nil)) igncontrol.c:121: internal compiler error: in extract_insn, at recog.c:2083 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. make: *** [compile/igncontrol.o] Error 1 Process make exited with code 2 Parts of code: ... // Globals register char *event_ptr asm("r2"); ... SIGNAL(SIG_OUTPUT_COMPARE2) { // if (event_cnt == jump_point_keep) // event_cnt = jump_point; // Set output signals IGN_CONTROL = *event_ptr++ & ctrl_mask_keep; unsigned char cmp_tmp = *event_ptr++; // If use of separate lines like: // // unsigned char cmp_tmp = *event_ptr; // event_ptr++; // // so everything works fine. if (cmp_tmp) TIM2_CMP = cmp_tmp; else { STOP_TIM2(); TIMSK = tim_mask; IGN_FEED = 1; } } ... Preprocessor: ... void __vector_3 (void) __attribute__ ((signal)); void __vector_3 (void) { (*(volatile uint8_t *)((0x15) + 0x20)) = *event_ptr++ & ctrl_mask_keep; unsigned char cmp_tmp = *event_ptr++; if (cmp_tmp) (*(volatile uint8_t *)((0x23) + 0x20)) = cmp_tmp; else { (*(volatile uint8_t *)((0x25) + 0x20)) = 0x00; (*(volatile uint8_t *)((0x39) + 0x20)) = tim_mask; (*(volatile bit_field *) (((uint16_t) &((*(volatile uint8_t *)((0x18) + 0x20)) )))).bit2 = 1; } } -- Summary: unrecognizable insn Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: normal Priority: P2 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: a dot plot at nettaxi dot com CC: ericw at evcohs dot com,gcc-bugs at gcc dot gnu dot org GCC target triplet: avr http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20082