This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
ice-on-legal-code with m68hc11-elf-gcc release 3.0.4
- From: Michael Svetlik <m dot svetlik at ssi-schaefer-peem dot com>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 26 Jun 2002 13:07:44 +0200
- Subject: ice-on-legal-code with m68hc11-elf-gcc release 3.0.4
Gents,
I have built the information file attached, as good as I could
understand your requirements page. Please, feel free to contact me in
case of a certain lack. The behaviour is easily reproducable, and I will
give you all support I'm able to (the alternative compiler is an IAR,
fucking bullshit).
Regards
Michael
Versions:
(source packages loaded from www.gnu-m68hc11.org and
drwxr-xr-x 15 michl 4096 Jun 25 15:59 binutils-2.11.2-m68hc1x
-rw-r--r-- 1 michl 1200974 Jun 25 15:52 binutils-2.11.2-m68hc1x-20020203.diffs
drwxr-xr-x 17 michl 4096 Jun 25 17:56 gcc-3.0.4
-rw-r--r-- 1 michl 178711 Jun 25 17:23 gcc-3.0.4-m68hc1x-20020317.diffs
output from 'm68hc12-elf-gcc -v' :
Reading specs from /usr/local/lib/gcc-lib/m68hc12-elf/3.0.4/specs
Configured with: ./configure --target=m68hc12-elf --program-prefix=m68hc12-elf- : (reconfigured) ./configure --target=m68hc12-elf --program-prefix=m68hc12-elf- --enable-languages=c
Thread model: single
gcc version 3.0.4 m68hc1x-20020317
--------------------------------------------------------------------------------
host system: Linux 2.4.7-10 on an i686
--------------------------------------------------------------------------------
command that triggered the bug:
$ m68hc12-elf-gcc -O3 -c -I./src -I./sys-inc -fno-builtin src/hc12_eeprom.c -o obj/hc12_eeprom.o
src/hc12_eeprom.c: In function `write_eeprom':
src/hc12_eeprom.c:44: Insn does not satisfy its constraints:
(insn 32 30 128 (set (mem:QI (const_int 243 [0xf3]) 0)
(ior:QI (mem:QI (const_int 243 [0xf3]) 0)
(const_int 22 [0x16]))) 83 {*iorqi3_const} (insn_list 25 (nil))
(nil))
src/hc12_eeprom.c:44: Internal compiler error in reload_cse_simplify_operands, at reload1.c:8387
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
make: *** [obj/hc12_eeprom.o] Error 1
--------------------------------------------------------------------------------
cat hc12_eeprom.i >> gcc-bugreport.text:
# 7 "src/hc12_eeprom.c"
# 1 "src/hc912bc32.h" 1
# 8 "src/hc12_eeprom.c" 2
# 1 "src/hc12_util.h" 1
# 12 "src/hc12_util.h"
enum true_false { false=0, true};
# 22 "src/hc12_util.h"
typedef char bool;
typedef char boolean;
typedef unsigned char byte;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef const unsigned char* pcbyte;
typedef const unsigned short* pcword;
# 40 "src/hc12_util.h"
void wait_1msec(void);
void wait_10msec(void);
void sleep(unsigned long);
char bitNr(char);
void initMain(void);
void restartMain(void);
void InitLock(char*);
bool SetLock(char*);
void ResetLock(char*);
void WaitLock(char*);
void BootLoaderDownload(void);
void BootLoad(void);
void Reboot(void);
void Coldstart(void);
char IsInterrupt(void);
boolean isMenu(void);
# 9 "src/hc12_eeprom.c" 2
# 1 "src/hc12_eeprom.h" 1
# 41 "src/hc12_eeprom.h"
void write_eeprom(unsigned char*,unsigned char);
# 13 "src/hc12_eeprom.c" 2
void write_eeprom
(unsigned char* pPointer,
unsigned char bByte)
{
if (*pPointer!=bByte)
{
(* (unsigned char *) (0x0000 + 0xF1))=0x00;
(* (unsigned char *) (0x0000 + 0xF3))|=0x02|0x04|0x10;
*pPointer=bByte;
(* (unsigned char *) (0x0000 + 0xF3))|=0x01;
wait_10msec();
(* (unsigned char *) (0x0000 + 0xF3))&=~(0x01);
(* (unsigned char *) (0x0000 + 0xF3))&=~(0x04|0x10);
*pPointer=bByte;
(* (unsigned char *) (0x0000 + 0xF3))|=0x01;
wait_10msec();
(* (unsigned char *) (0x0000 + 0xF3))&=~(0x01);
(* (unsigned char *) (0x0000 + 0xF3))&=~(0x02);
(* (unsigned char *) (0x0000 + 0xF1))=0xFF;
}
}
--------------------------------------------------------------------------------
cat hc12_eeprom.s >> gcc-bugreport.text:
;;;-----------------------------------------
;;; Start MC68HC11 gcc assembly output
;;; gcc compiler 3.0.4 m68hc1x-20020317
;;; Command: /usr/local/lib/gcc-lib/m68hc12-elf/3.0.4/cc1 -fpreprocessed hc12_eeprom.i -quiet -dumpbase hc12_eeprom.c -O3 -fno-builtin -o hc12_eeprom.s
;;; Compiled: Wed Jun 26 12:47:27 2002
;;; (META)compiled by GNU C version 3.0.2 20010905 (prerelease).
;;;-----------------------------------------
.file "hc12_eeprom.i"
; extern wait_10msec