/*
sdcc --version
SDCC :
mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51
/ds400/hc08 0.0.0 (Dec 30 2003) (UNIX)
sdcc -mmcs51 -p8052 --stack-auto -c ex2.c
Processor: 8052
<runs forever using 85% cpu, ctrl-c to stop>
Caught signal 2: SIGINT
*/
typedef unsigned char uint8;
typedef signed char int8;
typedef unsigned short uint16;
typedef signed short int16;
typedef unsigned long uint32;
typedef signed long int32;
uint8 func(uint8 a, uint16 b, uint8 c)
{
return a+b+c;
}
void _func2(void)
{
}
void ex_func2(uint32 arg)
{
func((arg >> 16) & 0xFF, arg & 0xFFFF, (arg >> 24) &
0xFF);
}
Logged In: YES
user_id=635249
Fixed in the various backend register allocators. See:
src/mcs51/ralloc.c 1.118
src/ds390/ralloc.c 1.89
src/pic/ralloc.c 1.55
src/pic16/ralloc.c 1.16
src/z80/ralloc.c 1.67