Module Name: src Committed By: cherry Date: Sun Mar 16 09:20:05 UTC 2014
Added Files: src/tests/lib/csu/arch/ia64: h_initfini_align.S Log Message: Add stack align test stub for ia64 native csu To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/tests/lib/csu/arch/ia64/h_initfini_align.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Added files: Index: src/tests/lib/csu/arch/ia64/h_initfini_align.S diff -u /dev/null src/tests/lib/csu/arch/ia64/h_initfini_align.S:1.1 --- /dev/null Sun Mar 16 09:20:05 2014 +++ src/tests/lib/csu/arch/ia64/h_initfini_align.S Sun Mar 16 09:20:05 2014 @@ -0,0 +1,37 @@ +/* $NetBSD: h_initfini_align.S,v 1.1 2014/03/16 09:20:05 cherry Exp $ */ + +#include <machine/asm.h> + +RCSID("$NetBSD: h_initfini_align.S,v 1.1 2014/03/16 09:20:05 cherry Exp $") + +ENTRY(check_stack_alignment, 0) + .prologue + .regstk 0, 2, 0, 0 + + alloc loc0 = ar.pfs, 0, 2, 0, 0 + + .body + mov ret0 = 1 + ;; + + /* ar.bspstore has an 8-byte alignment requirement */ + mov loc1 = ar.bsp + ;; + + and loc1 = 7, loc1 + ;; + + cmp.eq p1, p0 = 0, loc1 + (p0) mov ret0 = 0 + ;; + + /* sp has a 16-byte alignment requirement */ + (p1) mov loc1 = sp + ;; + (p1) and loc1 = 15, loc1 + ;; + + (p1) cmp.eq p1, p0 = 0, loc1 + (p0) mov ret0 = 0 + + br.ret.sptk.few rp