Home | History | Annotate | Line # | Download | only in include
endian_machdep.h revision 1.2
      1 /*	$NetBSD: endian_machdep.h,v 1.2 2009/12/14 00:46:04 matt Exp $	*/
      2 
      3 #ifndef _BYTE_ORDER
      4 # error  Define MIPS target CPU endian-ness in port-specific header file.
      5 #endif
      6 
      7 #ifdef _LOCORE
      8 
      9 /*
     10  *   Endian-independent assembly-code aliases for unaligned memory accesses.
     11  */
     12 #if _BYTE_ORDER == _LITTLE_ENDIAN
     13 # define LWHI lwr
     14 # define LWLO lwl
     15 # define SWHI swr
     16 # define SWLO swl
     17 # if SZREG == 4
     18 #  define REG_LHI   lwr
     19 #  define REG_LLO   lwl
     20 #  define REG_SHI   swr
     21 #  define REG_SLO   swl
     22 # else
     23 #  define REG_LHI   ldr
     24 #  define REG_LLO   ldl
     25 #  define REG_SHI   sdr
     26 #  define REG_SLO   sdl
     27 # endif
     28 #endif
     29 
     30 #if _BYTE_ORDER == _BIG_ENDIAN
     31 # define LWHI lwl
     32 # define LWLO lwr
     33 # define SWHI swl
     34 # define SWLO swr
     35 # if SZREG == 4
     36 #  define REG_LHI   lwl
     37 #  define REG_LLO   lwr
     38 #  define REG_SHI   swl
     39 #  define REG_SLO   swr
     40 # else
     41 #  define REG_LHI   ldl
     42 #  define REG_LLO   ldr
     43 #  define REG_SHI   sdl
     44 #  define REG_SLO   sdr
     45 # endif
     46 #endif
     47 
     48 #endif /* LOCORE */
     49