Home | History | Annotate | Line # | Download | only in include
asm.h revision 1.19.156.1
      1        1.19  mrg /*       $NetBSD: asm.h,v 1.19.156.1 2013/06/23 06:20:12 tls Exp $        */
      2         1.1  eeh 
      3        1.19  mrg #include <sparc/asm.h>
      4  1.19.156.1  tls 
      5  1.19.156.1  tls /*
      6  1.19.156.1  tls  * Here are some defines to try to maintain consistency but still
      7  1.19.156.1  tls  * support 32-and 64-bit compilers.
      8  1.19.156.1  tls  */
      9  1.19.156.1  tls #ifdef _LP64
     10  1.19.156.1  tls /* reg that points to base of data/text segment */
     11  1.19.156.1  tls #define	BASEREG	%g4
     12  1.19.156.1  tls /* first constants for storage allocation */
     13  1.19.156.1  tls #define LNGSZ		8
     14  1.19.156.1  tls #define LNGSHFT		3
     15  1.19.156.1  tls #define PTRSZ		8
     16  1.19.156.1  tls #define PTRSHFT		3
     17  1.19.156.1  tls #define POINTER		.xword
     18  1.19.156.1  tls #define ULONG		.xword
     19  1.19.156.1  tls /* Now instructions to load/store pointers & long ints */
     20  1.19.156.1  tls #define LDLNG		ldx
     21  1.19.156.1  tls #define LDULNG		ldx
     22  1.19.156.1  tls #define STLNG		stx
     23  1.19.156.1  tls #define STULNG		stx
     24  1.19.156.1  tls #define LDPTR		ldx
     25  1.19.156.1  tls #define LDPTRA		ldxa
     26  1.19.156.1  tls #define STPTR		stx
     27  1.19.156.1  tls #define STPTRA		stxa
     28  1.19.156.1  tls #define	CASPTR		casx
     29  1.19.156.1  tls #define	CASPTRA		casxa
     30  1.19.156.1  tls /* Now something to calculate the stack bias */
     31  1.19.156.1  tls #define STKB		BIAS
     32  1.19.156.1  tls #define	CCCR		%xcc
     33  1.19.156.1  tls #else
     34  1.19.156.1  tls #define	BASEREG		%g0
     35  1.19.156.1  tls #define LNGSZ		4
     36  1.19.156.1  tls #define LNGSHFT		2
     37  1.19.156.1  tls #define PTRSZ		4
     38  1.19.156.1  tls #define PTRSHFT		2
     39  1.19.156.1  tls #define POINTER		.word
     40  1.19.156.1  tls #define ULONG		.word
     41  1.19.156.1  tls /* Instructions to load/store pointers & long ints */
     42  1.19.156.1  tls #define LDLNG		ldsw
     43  1.19.156.1  tls #define LDULNG		lduw
     44  1.19.156.1  tls #define STLNG		stw
     45  1.19.156.1  tls #define STULNG		stw
     46  1.19.156.1  tls #define LDPTR		lduw
     47  1.19.156.1  tls #define LDPTRA		lduwa
     48  1.19.156.1  tls #define STPTR		stw
     49  1.19.156.1  tls #define STPTRA		stwa
     50  1.19.156.1  tls #define	CASPTR		cas
     51  1.19.156.1  tls #define	CASPTRA		casa
     52  1.19.156.1  tls #define STKB		0
     53  1.19.156.1  tls #define	CCCR		%icc
     54  1.19.156.1  tls #endif
     55  1.19.156.1  tls 
     56  1.19.156.1  tls #if defined(_KERNEL) || defined(_RUMPKERNEL)
     57  1.19.156.1  tls /* Give this real authority: reset the machine */
     58  1.19.156.1  tls #define NOTREACHED	sir
     59  1.19.156.1  tls #else
     60  1.19.156.1  tls #define NOTREACHED
     61  1.19.156.1  tls #endif
     62  1.19.156.1  tls 
     63  1.19.156.1  tls /* if < 32, copy by bytes, memcpy, kcopy, ... */
     64  1.19.156.1  tls #define	BCOPY_SMALL	32
     65  1.19.156.1  tls 
     66  1.19.156.1  tls /* use as needed to align things on longword boundaries */
     67  1.19.156.1  tls #define	_ALIGN	.align 8
     68  1.19.156.1  tls #define ICACHE_ALIGN	.align	32
     69