1272343Sngie/* $NetBSD: h_initfini_align.S,v 1.2 2014/03/16 09:27:04 cherry Exp $ */ 2272343Sngie 3272343Sngie#include <machine/asm.h> 4272343Sngie 5272343SngieRCSID("$NetBSD: h_initfini_align.S,v 1.2 2014/03/16 09:27:04 cherry Exp $") 6272343Sngie 7272343SngieENTRY(check_stack_alignment, 0) 8272343Sngie .prologue 9272343Sngie .regstk 0, 2, 0, 0 10272343Sngie 11272343Sngie alloc loc0 = ar.pfs, 0, 2, 0, 0 12272343Sngie 13272343Sngie .body 14272343Sngie mov ret0 = 1 15272343Sngie ;; 16272343Sngie 17272343Sngie /* ar.bsp has an 8-byte alignment requirement */ 18272343Sngie mov loc1 = ar.bsp 19272343Sngie ;; 20272343Sngie 21272343Sngie and loc1 = 7, loc1 22272343Sngie ;; 23272343Sngie 24272343Sngie cmp.eq p1, p0 = 0, loc1 25272343Sngie (p0) mov ret0 = 0 26272343Sngie ;; 27272343Sngie 28272343Sngie /* sp has a 16-byte alignment requirement */ 29272343Sngie (p1) mov loc1 = sp 30272343Sngie ;; 31272343Sngie (p1) and loc1 = 15, loc1 32272343Sngie ;; 33272343Sngie 34272343Sngie (p1) cmp.eq p1, p0 = 0, loc1 35272343Sngie (p0) mov ret0 = 0 36272343Sngie 37272343Sngie br.ret.sptk.few rp 38