home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / assembler / as / src / c / endian < prev    next >
Encoding:
Text File  |  1992-08-28  |  864 b   |  50 lines

  1. /*
  2.  * convert integers to/from ARM byte-sex.
  3.  * 
  4.  * Andy Duplain, August 1992.
  5.  */
  6.  
  7. #include "endian.h"
  8.  
  9. /*
  10.  * convert to ARM byte-sex.
  11.  */
  12. unsigned armword(unsigned val)
  13. {
  14. #ifdef LITTLEENDIAN
  15.   return (val);
  16. #else
  17.   union {
  18.     unsigned i;
  19.     char c[4];
  20.   } ret;
  21.  
  22.   ret.c[0] = (val >> BYTE0SHIFT) & 0xff;
  23.   ret.c[1] = (val >> BYTE1SHIFT) & 0xff;
  24.   ret.c[2] = (val >> BYTE2SHIFT) & 0xff;
  25.   ret.c[3] = (val >> BYTE3SHIFT) & 0xff;
  26.   return (ret.i);
  27. #endif        /* LITTLEENDIAN */
  28. }
  29.  
  30. /*
  31.  * convert from ARM byte-sex.
  32.  */
  33. unsigned ourword(unsigned val)
  34. {
  35. #ifdef LITTLEENDIAN
  36.   return (val);
  37. #else
  38.   union {
  39.     unsigned i;
  40.     char c[4];
  41.   } ret;
  42.  
  43.   ret.c[0] = (val >> BYTE0SHIFT) & 0xff;
  44.   ret.c[1] = (val >> BYTE1SHIFT) & 0xff;
  45.   ret.c[2] = (val >> BYTE2SHIFT) & 0xff;
  46.   ret.c[3] = (val >> BYTE3SHIFT) & 0xff;
  47.   return (ret.i);
  48. #endif        /* LITTLEENDIAN */
  49. }
  50.