Home | History | Annotate | Line # | Download | only in ia64
h_initfini_align.S revision 1.2.8.2
      1  1.2.8.2  tls /*	$NetBSD: h_initfini_align.S,v 1.2.8.2 2014/08/20 00:04:49 tls Exp $	*/
      2  1.2.8.2  tls 
      3  1.2.8.2  tls #include <machine/asm.h>
      4  1.2.8.2  tls 
      5  1.2.8.2  tls RCSID("$NetBSD: h_initfini_align.S,v 1.2.8.2 2014/08/20 00:04:49 tls Exp $")
      6  1.2.8.2  tls 
      7  1.2.8.2  tls ENTRY(check_stack_alignment, 0)
      8  1.2.8.2  tls 	.prologue
      9  1.2.8.2  tls 	.regstk 0, 2, 0, 0
     10  1.2.8.2  tls 
     11  1.2.8.2  tls 	alloc loc0 = ar.pfs, 0, 2, 0, 0
     12  1.2.8.2  tls 
     13  1.2.8.2  tls 	.body
     14  1.2.8.2  tls 	mov ret0 = 1
     15  1.2.8.2  tls 	;;
     16  1.2.8.2  tls 
     17  1.2.8.2  tls 	/* ar.bsp has an 8-byte alignment requirement */
     18  1.2.8.2  tls  	mov loc1 = ar.bsp
     19  1.2.8.2  tls 	;;
     20  1.2.8.2  tls 
     21  1.2.8.2  tls 	and loc1 = 7, loc1
     22  1.2.8.2  tls 	;;
     23  1.2.8.2  tls 
     24  1.2.8.2  tls 	cmp.eq	p1, p0 = 0, loc1
     25  1.2.8.2  tls 	(p0)	mov ret0 = 0
     26  1.2.8.2  tls 	;;
     27  1.2.8.2  tls 
     28  1.2.8.2  tls 	/* sp has a 16-byte alignment requirement */
     29  1.2.8.2  tls 	(p1)	mov loc1 = sp
     30  1.2.8.2  tls 	;;
     31  1.2.8.2  tls 	(p1)	and loc1 = 15, loc1
     32  1.2.8.2  tls 	;;
     33  1.2.8.2  tls 
     34  1.2.8.2  tls 	(p1)	cmp.eq p1, p0 = 0, loc1
     35  1.2.8.2  tls 	(p0)	mov ret0 = 0
     36  1.2.8.2  tls 
     37  1.2.8.2  tls 	br.ret.sptk.few rp
     38