1/* $NetBSD: h_initfini_align.S,v 1.2 2014/03/16 09:27:04 cherry Exp $ */ 2 3#include <machine/asm.h> 4 5RCSID("$NetBSD: h_initfini_align.S,v 1.2 2014/03/16 09:27:04 cherry Exp $") 6 7ENTRY(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