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