/*************************************************************************** * Copyright (c) 2003-2006, Broadcom Corporation * All Rights Reserved * Confidential Property of Broadcom Corporation * * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. * * $brcm_Workfile: $ * $brcm_Revision: $ * $brcm_Date: $ * * Module Description: * * Revision History: * * $brcm_Log: $ * ***************************************************************************/ #include "bcm_mips.h" /* global leaf function (does not call other functions) */ #define LEAF(name) \ .globl name; \ .ent name; \ name: /* end of a global function */ #define END(name) \ .size name,.-name; \ .end name /* * JPF - 32bit implementation only!!! */ /* * int setjmp(char *jmp_buf) * * a0 jmp_buf (44 bytes) */ LEAF(setjmp) sw s0, 0(a0) sw s1, 4(a0) sw s2, 8(a0) sw s3, 12(a0) sw s4, 16(a0) sw s5, 20(a0) sw s6, 24(a0) sw s7, 28(a0) sw s8, 32(a0) sw sp, 36(a0) sw ra, 40(a0) move v0,zero j ra nop END(setjmp) /* * int longjmp(char *jmp_buf,int val) * * a0 jmp_buf (44 bytes initialized by setjmp) * a1 val return value after initiating longjmp */ LEAF(longjmp) lw s0, 0(a0) lw s1, 4(a0) lw s2, 8(a0) lw s3, 12(a0) lw s4, 16(a0) lw s5, 20(a0) lw s6, 24(a0) lw s7, 28(a0) lw s8, 32(a0) lw sp, 36(a0) lw ra, 40(a0) /* if val is 0 return a 1, otherwise return val */ bne a1, zero, 1f li v0, 1 1: move v0, a1 j ra nop END(longjmp)