| Index: tests/exception_test/exception_crash_test.c
|
| diff --git a/tests/exception_test/exception_crash_test.c b/tests/exception_test/exception_crash_test.c
|
| index 57f31a4bebfeff9cb73542204800953fedc0cde2..425bfe4ea0836c233040e89a98dc9addfcff4eb8 100644
|
| --- a/tests/exception_test/exception_crash_test.c
|
| +++ b/tests/exception_test/exception_crash_test.c
|
| @@ -76,6 +76,25 @@ void error_exit(void) {
|
| _exit(1);
|
| }
|
|
|
| +#elif NACL_ARCH(NACL_BUILD_ARCH) == NACL_mips
|
| +
|
| +char recovery_stack[0x1000] __attribute__((aligned(8)));
|
| +
|
| +void bad_stack_exception_handler(struct NaClExceptionContext *context);
|
| +__asm__(".pushsection .text, \"ax\", @progbits\n"
|
| + ".global bad_stack_exception_handler\n"
|
| + "bad_stack_exception_handler:\n"
|
| + "lui $t9, %hi(recovery_stack)\n"
|
| + "addiu $sp, $t9, %lo(recovery_stack)\n"
|
| + "and $sp, $sp, $t7\n"
|
| + "j error_exit\n"
|
| + "nop\n"
|
| + ".popsection\n");
|
| +
|
| +void error_exit() {
|
| + _exit(1);
|
| +}
|
| +
|
| #else
|
|
|
| /* TODO(mseaborn): Implement a stack switcher, like the one above, for ARM. */
|
|
|