Re: [AVR] Hookize LIBCALL_VALUE and FUNCTION_VALUE_REGNO_P

2011-03-17 Thread Richard Henderson
On 03/16/2011 02:46 PM, Georg-Johann Lay wrote: > Anatoly Sokolov schrieb: > >> /* Returns register number for function return value.*/ >> >> -int >> +static inline int >> avr_ret_register (void) >> { >>return 24; >> } > > I always wondered why that works. > > SI is returned in r22..r2

Re: [AVR] Hookize LIBCALL_VALUE and FUNCTION_VALUE_REGNO_P

2011-03-16 Thread Georg-Johann Lay
Anatoly Sokolov schrieb: /* Returns register number for function return value.*/ -int +static inline int avr_ret_register (void) { return 24; } I always wondered why that works. SI is returned in r22..r25 (not in r24..27) DI is returnet in r18..r25 (not in r24..31) So according to

[AVR] Hookize LIBCALL_VALUE and FUNCTION_VALUE_REGNO_P

2011-03-16 Thread Anatoly Sokolov
Hello. This patch removes obsolete LIBCALL_VALUE and FUNCTION_VALUE_REGNO_P macros from AVR back end in the GCC and introduces equivalent TARGET_LIBCALL_VALUE and TARGET_FUNCTION_VALUE_REGNO_P target hooks. * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_