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:
parent
fa40e9e92f
commit
22211cb453
@ -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
|
||||
|
2
C/exec.c
2
C/exec.c
@ -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
|
||||
|
10
H/Regs.h
10
H/Regs.h
@ -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 */
|
||||
|
Reference in New Issue
Block a user