Howdy.... Thanks. This has been already fixed and the code is in CVS. So, just checkout sources from cvs and recompile gcc or wait till next win 32 build. As a workaround, you can cast the fifth (sixth, seventh, etc..) vat to int.
~d On Monday 16 December 2002 05:20, matthew.c...@tekelek.com.au wrote: > Howdy... > > It seems that my code has started giving msp430-gcc a fur ball, which is > choking upon. This morning porting some functions from one of my previous > avr-gcc projects it started generating insn errors which I assume are bad ! > > Here is the scenario... My project is basically split into multiple > source files. In my adcv.c module you will find the following function. > > ---------------------------------------------------------------- > > void ADCV_InitChannel( u08 Channel, u16 InitialValue, \ > u08 SampleFrequency, u08 TimeConstant, u08 Flags) > { > /* code removed to protect the innocent */ > return; > } > > In the adcv.h header file; > > extern void ADCV_InitChannel( u08 Channel, u16 InitialValue, \ > u08 SampleFrequency, u08 TimeConstant, u08 Flags); > > note: > > typedef unsigned char u08; > typedef unsigned short u16; > > ---------------------------------------------------------------- > > In my other modules (eg temp.c) the function above is called like so; > > void TEMP_InitSW(void) > { > ADCV_InitChannel(ADCV_TEMP_Channel, TEMP_DEFAULT_ADC, \ > TEMP_SAMPLE_FREQ, TEMP_FILTER_TC, \ > ADCV_ENABLED); > return; > } > > where > > #define ADCV_TEMP_Channel 0 > #define TEMP_DEFAULT_ADC 1936 > #define TEMP_SAMPLE_FREQ 60 > #define TEMP_FILTER_TC 4 > #define ADCV_ENABLED (1<<0) > > Note the sample freq, filter timeconst and default filter values change > depending on module calling the Init Function. > > ---------------------------------------------------------------- > > Now from the output window I get the following when I try to compile the > above; > > msp430-gcc src\adcv.c -g -Os -Wall -fshort-enums -mmcu=msp430x447 \ > -Iinc -Wa,-ahlms=tilst\adcv.lst -c -o tiobj\adcv.o > msp430-gcc src\temp.c -g -Os -Wall -fshort-enums -mmcu=msp430x447 \ > -Iinc -Wa,-ahlms=tilst\temp.lst -c -o tiobj\temp.o > src/temp.c: In function `TEMP_InitSW': > src/temp.c:190: unrecognizable insn: > (insn 63 62 64 (set (mem/f:QI (pre_modify:HI (reg/f:HI 1 r1) > (plus:HI (reg/f:HI 1 r1) > (const_int -2 [0xfffffffe]))) [0 S1 A8]) > (const_int 1 [0x1])) -1 (nil) > (nil)) > src/temp.c:190: Internal compiler error in extract_insn, at recog.c:2148 > Please submit a full bug report, > with preprocessed source if appropriate. > See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions. > > ---------------------------------------------------------------- > > My testing has shown that this error revolves around the number of > variables I am passing to the ADCV_InitChannel() function. If I remove > one variable ie "u08 Flags" then the code compiles without the insn error. > eg see below; > > void ADCV_InitChannel( u08 Channel, u16 InitialValue, \ > u08 SampleFrequency, u08 TimeConstant) > { > /* code removed to protect the innocent */ > return; > } > > void TEMP_InitSW(void) > { > ADCV_InitChannel(ADCV_TEMP_Channel, TEMP_DEFAULT_ADC, \ > TEMP_SAMPLE_FREQ, TEMP_FILTER_TC); > return; > } > > ---------------------------------------------------------------- > > It does not matter which variable I remove from the function call, I only > have to reduce the number of variables by one byte and it works. I do not > believe it to be a variable type problem, just the number I am trying to > pass. > > I have used this code previously and I am happy that all my chickens and > eggs line up with respect to the relevant includes and dependencies between > my source modules. > > I know that the above function is not efficient, I could pass a pointer and > prevent this situation, but I was under the impression there were no > limitations on how many variables can be passed to a function. ie once the > number of available registers were consumed the compiler would start using > the stack. > > For the time being I will revert to using a pointer to pass the relevant > data, but I am hoping this is not a bug ? > > Cheers > > Matthew > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by: > With Great Power, Comes Great Responsibility > Learn to use your power at OSDN's High Performance Computing Channel > http://hpc.devchannel.org/ > _______________________________________________ > Mspgcc-users mailing list > Mspgcc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mspgcc-users -- /******************************************************************** ("`-''-/").___..--''"`-._ (\ Dimmy the Wild UA1ACZ `6_ 6 ) `-. ( ).`-.__.`) Enterprise Information Sys (_Y_.)' ._ ) `._ `. ``-..-' Nevsky prospekt, 20 / 44 _..`--'_..-_/ /--'_.' ,' Saint Petersburg, Russia (il),-'' (li),' ((!.-' +7 (812) 3468202, 5585314 ********************************************************************/