From: Andreas Schwab Date: Tue, 1 Nov 2011 15:03:29 +0000 (+0100) Subject: m68k: define stackinfo_get_sp, stackinfo_sub_sp X-Git-Tag: glibc-2.16-ports-before-merge~342 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=f335e01fe1240ea3e4a3759e68f6585c51ffcda3;p=glibc.git m68k: define stackinfo_get_sp, stackinfo_sub_sp --- diff --git a/ChangeLog.m68k b/ChangeLog.m68k index 09de15987b..42dcf75db0 100644 --- a/ChangeLog.m68k +++ b/ChangeLog.m68k @@ -1,3 +1,8 @@ +2011-11-01 Andreas Schwab + + * sysdeps/m68k/stackinfo.h (stackinfo_get_sp, stackinfo_sub_sp): + Define. + 2011-10-26 Andreas Schwab * sysdeps/m68k/m680x0/fpu/math_private.h: New file. diff --git a/sysdeps/m68k/stackinfo.h b/sysdeps/m68k/stackinfo.h index b44d4d0ee9..bcfdb12857 100644 --- a/sysdeps/m68k/stackinfo.h +++ b/sysdeps/m68k/stackinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2010 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2010, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -31,4 +31,12 @@ is present, but it is presumed absent. */ #define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X) +/* Access to the stack pointer. */ +#define stackinfo_get_sp() \ + ({ void *p__; asm volatile ("move.l %%sp, %0" : "=r" (p__)); p__; }) +#define stackinfo_sub_sp(ptr) \ + ({ ptrdiff_t d__; \ + asm volatile ("sub.l %%sp, %0" : "=r" (d__) : "0" (ptr)); \ + d__; }) + #endif /* stackinfo.h */