31 lines
		
	
	
		
			1023 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1023 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef __STDARG
 | 
						|
#define __STDARG
 | 
						|
 | 
						|
#if !defined(_VA_LIST) && !defined(__VA_LIST_DEFINED)
 | 
						|
#define _VA_LIST
 | 
						|
#define _VA_LIST_DEFINED
 | 
						|
typedef struct {
 | 
						|
	char	*_a0;		/* pointer to first homed integer arg */
 | 
						|
	int	_offset;	/* byte offset of next param */
 | 
						|
	float	_tmp;
 | 
						|
} __va_list;
 | 
						|
#endif
 | 
						|
static float __va_arg_tmp;
 | 
						|
typedef __va_list va_list;
 | 
						|
 | 
						|
#define va_start(list, start) ((void)( \
 | 
						|
	(list)._a0 = (__typecode(__firstarg)==1 ? \
 | 
						|
		(char*)&__firstarg+48 : (char *)&__firstarg), \
 | 
						|
	(list)._offset = (__typecode(start)==1 ? \
 | 
						|
		(char*)&start+56 : (char *)&start+8)-(list)._a0))
 | 
						|
#define va_arg(list, mode) (*(mode *)( \
 | 
						|
	(list)._offset += (int)((sizeof(mode)+7)&~7), \
 | 
						|
	(__typecode(mode)==1 && sizeof(mode)==4) ? \
 | 
						|
		((list)._tmp = (float)*(double *)((list)._a0 + (list)._offset - \
 | 
						|
			((list)._offset <= 48 ? 56 : 8))), (char *)&(list)._tmp : \
 | 
						|
	(__typecode(mode)==1 && (list)._offset <= 48) ? \
 | 
						|
		(list)._a0 + (list)._offset - 56 : \
 | 
						|
	(list)._a0 + (list)._offset - (int)((sizeof(mode)+7)&~7)))
 | 
						|
#define va_end(list) ((void)0)
 | 
						|
#endif
 |