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;
 | 
						|
}
 |