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