129524Ssam/* 229524Ssam * Copyright (c) 1980 Regents of the University of California. 329524Ssam * All rights reserved. The Berkeley software License Agreement 429524Ssam * specifies the terms and conditions for redistribution. 529524Ssam */ 629524Ssam#ifdef LIBC_SCCS 7*29710Ssam_sccsid:.asciz "@(#)reset.s 1.2 (Berkeley/CCI) 08/01/86" 829524Ssam#endif LIBC_SCCS 929524Ssam 1029524Ssam/* 1129524Ssam * C library -- reset, setexit 1229524Ssam * 1329524Ssam * reset(x) 1429524Ssam * will generate a "return" from 1529524Ssam * the last call to 1629524Ssam * setexit() 1729524Ssam * by restoring r2 - r12, fp 1829524Ssam * and doing a return. 1929524Ssam * The returned value is x; on the original 2029524Ssam * call the returned value is 0. 2129524Ssam * 2229524Ssam * useful for going back to the main loop 2329524Ssam * after a horrible error in a lowlevel 2429524Ssam * routine. 2529524Ssam */ 2629524Ssam#include "DEFS.h" 2729524Ssam 28*29710SsamENTRY(setexit, 0) 2929524Ssam movab setsav,r0 3029524Ssam storer $0x1ffc, (r0) 3129524Ssam movl (fp),44(r0) # fp 3229524Ssam moval 4(fp),48(r0) # sp 3329524Ssam movl -8(fp),52(r0) # pc 3429524Ssam clrl r0 3529524Ssam ret 3629524Ssam 37*29710SsamENTRY(reset, 0) 3829524Ssam movl 4(fp),r0 # returned value 3929524Ssam movab setsav,r1 4029524Ssam loadr $0x1ffc,(r1) 4129524Ssam movl 44(r1),fp 4229524Ssam movl 48(r1),sp 4329524Ssam jmp *52(r1) 4429524Ssam 4529524Ssam .data 4629524Ssamsetsav: .space 14*4 47