This is the mail archive of the crossgcc@sourceware.cygnus.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more infromation.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Hi, I have a little Problem, with the optimization of the gcc (m68k, version 2.8.1). I want to wait until a value of a variable changes. So I write something like that: char c; test() { c=1; while(c); } The changing of 'c' happens in an interrupt routine. If I turn the optimization with -O2 on, the compiler produces code like this: move.b c,%d0 .L6: tst.b %d0 jbne .L6 Of course the programm doesn't notice the changing of the value of 'c'. Are there any arguments for a variable that the compiler doesn't use a register? I habe the same problem, if I want to wait until a bit changes on a port: #define PORTE (*(char*)0xFFF...) test() { while (PORTE & 0x20); } Greetings Kai ------------------------------------------------------- Dipl.-Phys. Kai Schaeffer Schaeffer Apparatebau KG Pasewaldtstr. 7 Tel. +49-30-80902151 14169 Berlin FAX: +49-30-80902153 http://www.schaeffer-apparatebau.de ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |