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