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