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
|
#if PUSH_REGS
|
||||||
restore_absmi_regs(&standard_regs);
|
restore_absmi_regs(&standard_regs);
|
||||||
#endif
|
#endif
|
||||||
#if defined(__GNUC__) && defined(hppa)
|
#if defined(__GNUC__) && (defined(hppa) || defined(__alpha))
|
||||||
/* siglongjmp resets the TR hardware register */
|
/* siglongjmp resets the TR hardware register */
|
||||||
save_TR();
|
save_TR();
|
||||||
#endif
|
#endif
|
||||||
|
2
C/exec.c
2
C/exec.c
@ -870,7 +870,7 @@ exec_absmi(int top)
|
|||||||
#endif
|
#endif
|
||||||
yap_flags[SPY_CREEP_FLAG] = 0;
|
yap_flags[SPY_CREEP_FLAG] = 0;
|
||||||
CreepFlag = CalculateStackGap();
|
CreepFlag = CalculateStackGap();
|
||||||
#if defined(__GNUC__) && defined(hppa)
|
#if defined(__GNUC__) && (defined(hppa) || defined(__alpha))
|
||||||
/* siglongjmp resets the TR hardware register */
|
/* siglongjmp resets the TR hardware register */
|
||||||
restore_TR();
|
restore_TR();
|
||||||
#endif
|
#endif
|
||||||
|
10
H/Regs.h
10
H/Regs.h
@ -10,7 +10,7 @@
|
|||||||
* File: Regs.h *
|
* File: Regs.h *
|
||||||
* mods: *
|
* mods: *
|
||||||
* comments: YAP abstract machine registers *
|
* 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
|
#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)
|
#elif defined(__GNUC__) && defined(mips)
|
||||||
|
|
||||||
#define P REGS.P_ /* prolog machine program counter */
|
#define P REGS.P_ /* prolog machine program counter */
|
||||||
|
Reference in New Issue
Block a user