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