127 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
| 
 | |
| union u 
 | |
| {
 | |
|   struct 
 | |
|     {
 | |
|       short int msw;
 | |
|       unsigned short lsw;
 | |
|     } w;
 | |
|   long l;
 | |
| };
 | |
| 
 | |
| union us
 | |
| {
 | |
|   struct 
 | |
|     {
 | |
|       short int msw;
 | |
|       unsigned short lsw;
 | |
|     } w;
 | |
|   long l;
 | |
| };
 | |
| 
 | |
| int
 | |
| __cmpsi2(long arga,
 | |
| 	 short int msw_b, unsigned short int lsw_b)
 | |
| {
 | |
|   union u u;
 | |
|   u.l = arga;
 | |
| 
 | |
|   if (u.w.msw != msw_b)
 | |
|     {
 | |
|       if (u.w.msw < msw_b) return 0;
 | |
|       return 2;
 | |
|     }
 | |
|   if (u.w.lsw != lsw_b) 
 | |
|     {
 | |
|       if (u.w.lsw < lsw_b) return 0;
 | |
|       return 2;
 | |
|     }
 | |
|   return 1;
 | |
| }
 | |
| 
 | |
| 
 | |
| int
 | |
| __ucmpsi2(unsigned long arga,
 | |
| 	 unsigned short int msw_b, unsigned short int lsw_b)
 | |
| {
 | |
|   union us u;
 | |
|   u.l = arga;
 | |
| 
 | |
|   if (u.w.msw != msw_b)
 | |
|     {
 | |
|       if (u.w.msw < msw_b) return 0;
 | |
|       return 2;
 | |
|     }
 | |
|   if (u.w.lsw != lsw_b) 
 | |
|     {
 | |
|       if (u.w.lsw < lsw_b) return 0;
 | |
|       return 2;
 | |
|     }
 | |
|   return 1;
 | |
| }
 | |
| 
 | |
| 
 | |
| union pu 
 | |
| {
 | |
|   struct {
 | |
|     char ignore;
 | |
|     signed char msb;
 | |
|     unsigned short lsw;
 | |
|   } w;
 | |
|   long l;
 | |
| };
 | |
| 
 | |
| union pun
 | |
| {
 | |
|   struct {
 | |
|     char ignore;
 | |
|     unsigned char msb;
 | |
|     unsigned short lsw;
 | |
|   } w;
 | |
|   long l;
 | |
| };
 | |
| 
 | |
| 
 | |
| int
 | |
| __cmppsi2(long arga, long argb)
 | |
| {
 | |
|   union pu a;
 | |
|   union pu b;
 | |
|   a.l = arga;
 | |
|   b.l = argb;
 | |
| 
 | |
|   if (a.w.msb != b.w.msb)
 | |
|     {
 | |
|       if (a.w.msb < b.w.msb) return 0;
 | |
|       return 2;
 | |
|     }
 | |
|   if (a.w.lsw != b.w.lsw)
 | |
|     {
 | |
|       if (a.w.lsw < b.w.lsw) return 0;
 | |
|       return 2;
 | |
|     }
 | |
|   return 1;
 | |
| }
 | |
| 
 | |
| 
 | |
| int
 | |
| __ucmppsi2(long arga, long argb)
 | |
| {
 | |
|   union pun a;
 | |
|   union pun b;
 | |
|   a.l = arga;
 | |
|   b.l = argb;
 | |
| 
 | |
|   if (a.w.msb != b.w.msb)
 | |
|     {
 | |
|       if (a.w.msb < b.w.msb) return 0;
 | |
|       return 2;
 | |
|     }
 | |
|   if (a.w.lsw != b.w.lsw)
 | |
|     {
 | |
|       if (a.w.lsw < b.w.lsw) return 0;
 | |
|       return 2;
 | |
|     }
 | |
|   return 1;
 | |
| }
 |