/* This C language subroutine causes the abort interrupt to be activated. The Run Time Library for the C Language. Gordon A. Sterling (617) 461 - 3076 DSP Development Tools Engineering Created on 7/29/91 Updated on 5/94 by AS #include
void abort(void); */ #include "lib_glob.h" #include "sdl_glob.h" #include "sig_glob.h" .SEGMENT/CODE Code_Space_Name; .FILE RTL_FILENAME; .EXTERN ___lib_int_table; .GLOBAL _abort; _abort: R1=SIGABRT; R0=6; /*Each slot requires 5 locations*/ R4=R0*R1 (SSI); /*next mask,next,fcn,def mask,def*/ R0=___lib_int_table; /*Point to base of table*/ R4=R0+R4, pm_lnt=pm_0; /*Point to slot in table*/ ram_ireg=R4; R0=SIG_IGN; /*Test for ignore signal*/ R8=rammem(curr_func, ram_ireg); /*Read handler*/ R4=rammem(next_func, ram_ireg); /*Read next handler*/ COMP(R8,R0), rammem(curr_func, ram_ireg)=R4; /*Set handler*/ IF EQ JUMP (PC, restore_state) (DB); /*Ignore this signal*/ pm_ptr=R8; /*Point to handler*/ nop; CALLER_HOLD(R0) CALLER_SWAP RTLCALL (pm_0, pm_ptr) (DB); /*Call handler*/ SAVE_OLD_FRAME(R0) SAVE_RET_ADDR restore_state: R4=-1; /*Exit failure */ JUMP (PC, _exit) (DB); /*Exit now*/ RESTORE_STACK RESTORE_FRAME .ENDSEG;