Formerly m68k/setjmp.c.~6~

This commit is contained in:
Roland McGrath 1992-03-11 23:09:53 +00:00
parent 1ab822933f
commit 64f177adbc

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -20,12 +20,17 @@ Cambridge, MA 02139, USA. */
#include <setjmp.h>
#ifndef __GNUC__
#error This file uses GNU C extensions; you must compile with GCC.
#endif
/* Save the current program position in ENV and return 0. */
int
DEFUN(__setjmp, (env), jmp_buf env)
{
/* Save data registers D1 through D7. */
asm volatile("movem%.l d1-d7, %0" : : "m" (env[0].__dregs));
asm volatile("movem%.l d1-d7, %0" : : "m" (env[0].__dregs[0]));
/* Save return address in place of register A0. */
env[0].__aregs[0] = (PTR) ((PTR *) &env)[-1];