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