Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/tests/lib/csu/arch/ia64 Add stack align test stub for ia64 n...



details:   https://anonhg.NetBSD.org/src/rev/00b8db866ad8
branches:  trunk
changeset: 327751:00b8db866ad8
user:      cherry <cherry%NetBSD.org@localhost>
date:      Sun Mar 16 09:20:05 2014 +0000

description:
Add stack align test stub for ia64 native csu

diffstat:

 tests/lib/csu/arch/ia64/h_initfini_align.S |  37 ++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diffs (41 lines):

diff -r ce026e0a99a8 -r 00b8db866ad8 tests/lib/csu/arch/ia64/h_initfini_align.S
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/lib/csu/arch/ia64/h_initfini_align.S        Sun Mar 16 09:20:05 2014 +0000
@@ -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



Home | Main Index | Thread Index | Old Index