fix abort in Alpha

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@108 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
vsc 2001-06-27 15:46:26 +00:00
parent fa40e9e92f
commit 22211cb453
3 changed files with 11 additions and 3 deletions

View File

@ -258,7 +258,7 @@ Abort (char *format,...)
#if PUSH_REGS
restore_absmi_regs(&standard_regs);
#endif
#if defined(__GNUC__) && defined(hppa)
#if defined(__GNUC__) && (defined(hppa) || defined(__alpha))
/* siglongjmp resets the TR hardware register */
save_TR();
#endif

View File

@ -870,7 +870,7 @@ exec_absmi(int top)
#endif
yap_flags[SPY_CREEP_FLAG] = 0;
CreepFlag = CalculateStackGap();
#if defined(__GNUC__) && defined(hppa)
#if defined(__GNUC__) && (defined(hppa) || defined(__alpha))
/* siglongjmp resets the TR hardware register */
restore_TR();
#endif

View File

@ -10,7 +10,7 @@
* File: Regs.h *
* mods: *
* comments: YAP abstract machine registers *
* version: $Id: Regs.h,v 1.3 2001-06-06 19:10:51 vsc Exp $ *
* version: $Id: Regs.h,v 1.4 2001-06-27 15:46:26 vsc Exp $ *
*************************************************************************/
@ -319,6 +319,14 @@ EXTERN inline void restore_B(void) {
#define RECOVER_B() save_B(); B = BK_B
EXTERN inline void save_TR(void) {
REGS.TR_ = TR;
}
EXTERN inline void restore_TR(void) {
TR = REGS.TR_;
}
#elif defined(__GNUC__) && defined(mips)
#define P REGS.P_ /* prolog machine program counter */