Commit 92ad8473 by Gavin Romig-Koch

(va_arg): For little endian, eabi, objects

less than __va_reg_size are passed in registers.

From-SVN: r13760
parent 946f2aa8
...@@ -219,9 +219,11 @@ void va_end (__gnuc_va_list); /* Defined in libgcc.a */ ...@@ -219,9 +219,11 @@ void va_end (__gnuc_va_list); /* Defined in libgcc.a */
: *(__type *) (void *) __va_next_addr (__AP, __type))) : *(__type *) (void *) __va_next_addr (__AP, __type)))
#else #else
#define va_arg(__AP, __type) \ #define va_arg(__AP, __type) \
(__builtin_classify_type (* (__type *) 0) >= __record_type_class \ ((__va_rounded_size (__type) <= __va_reg_size) \
? **(__type **) (void *) __va_next_addr (__AP, __type) \ ? *(__type *) (void *) __va_next_addr (__AP, __type) \
: *(__type *) (void *) __va_next_addr (__AP, __type)) : (__builtin_classify_type (* (__type *) 0) >= __record_type_class \
? **(__type **) (void *) __va_next_addr (__AP, __type) \
: *(__type *) (void *) __va_next_addr (__AP, __type)))
#endif #endif
#else /* ! defined (__mips_eabi) */ #else /* ! defined (__mips_eabi) */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment