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