Skip to content
Snippets Groups Projects
Commit aba4491c authored by Marcus Comstedt's avatar Marcus Comstedt
Browse files

F_ESCAPE_CATCH bugfix (see [Bug 2293])

Rev: src/code/ppc32.c:1.12
parent 03b57f81
No related branches found
No related tags found
No related merge requests found
/* /*
* $Id: ppc32.c,v 1.11 2001/08/16 21:35:41 marcus Exp $ * $Id: ppc32.c,v 1.12 2001/09/19 22:30:40 marcus Exp $
* *
* Machine code generator for 32 bit PowerPC * Machine code generator for 32 bit PowerPC
* *
...@@ -338,6 +338,15 @@ void ppc32_mark(void) ...@@ -338,6 +338,15 @@ void ppc32_mark(void)
INCR_MARK_SP_REG(sizeof(struct svalue *)); INCR_MARK_SP_REG(sizeof(struct svalue *));
} }
static void ppc32_escape_catch(void)
{
extern void *do_escape_catch_label;
void *pc;
__asm__("\tmflr %0" : "=r" (pc));
Pike_fp->pc = pc;
goto *do_escape_catch_label;
}
void ins_f_byte(unsigned int b) void ins_f_byte(unsigned int b)
{ {
void *addr; void *addr;
...@@ -400,6 +409,10 @@ void ins_f_byte(unsigned int b) ...@@ -400,6 +409,10 @@ void ins_f_byte(unsigned int b)
SET_REG(PPC_REG_ARG1, 2); SET_REG(PPC_REG_ARG1, 2);
addr = (void *)f_add; addr = (void *)f_add;
break; break;
case F_ESCAPE_CATCH - F_OFFSET:
addr = (void *)ppc32_escape_catch;
break;
} }
#endif #endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment