diff options
Diffstat (limited to 'newlib/libc/machine/tic6x/setjmp.S')
-rw-r--r-- | newlib/libc/machine/tic6x/setjmp.S | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/newlib/libc/machine/tic6x/setjmp.S b/newlib/libc/machine/tic6x/setjmp.S new file mode 100644 index 000000000..cd40d5805 --- /dev/null +++ b/newlib/libc/machine/tic6x/setjmp.S @@ -0,0 +1,96 @@ +;****************************************************************************** +;* SETJMP v7.2.0I10181 * +;* * +;* Copyright (c) 1996-2010 Texas Instruments Incorporated * +;* http://www.ti.com/ * +;* * +;* Redistribution and use in source and binary forms, with or without * +;* modification, are permitted provided that the following conditions * +;* are met: * +;* * +;* Redistributions of source code must retain the above copyright * +;* notice, this list of conditions and the following disclaimer. * +;* * +;* Redistributions in binary form must reproduce the above copyright * +;* notice, this list of conditions and the following disclaimer in * +;* the documentation and/or other materials provided with the * +;* distribution. * +;* * +;* Neither the name of Texas Instruments Incorporated nor the names * +;* of its contributors may be used to endorse or promote products * +;* derived from this software without specific prior written * +;* permission. * +;* * +;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * +;* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * +;* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * +;* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * +;* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * +;* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * +;* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * +;* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * +;* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * +;* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * +;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * +;* * +;****************************************************************************** + +.text +.globl setjmp +.type setjmp,%function +setjmp: + MV .L2X A4, B4 +|| STW .D1T2 B3, *+A4(48) + + STW .D1T1 A10, *+A4(0) +|| STW .D2T2 B10, *+B4(4) +|| RET .S2 B3 + + STW .D1T1 A11, *+A4(8) +|| STW .D2T2 B11, *+B4(12) + + STW .D1T1 A12, *+A4(16) +|| STW .D2T2 B12, *+B4(20) + + STW .D1T1 A13, *+A4(24) +|| STW .D2T2 B13, *+B4(28) + + STW .D1T1 A14, *+A4(32) +|| STW .D2T2 B14, *+B4(36) + + STW .D1T1 A15, *+A4(40) +|| STW .D2T2 B15, *+B4(44) +|| ZERO .S1 A4 +.size setjmp, . - setjmp + +.globl longjmp +.type longjmp,%function +longjmp: + LDW .D1T1 *+A4(48), A3 + + MV .L2X A4, B6 +|| MV .S1 A4, A6 +|| MV .D2 B4, B2 + + LDW .D1T1 *+A6(0), A10 +|| LDW .D2T2 *+B6(4), B10 +|| [B2] MV .L1X B4, A4 +|| [!B2] MVK .S1 1, A4 + + LDW .D1T1 *+A6(8), A11 +|| LDW .D2T2 *+B6(12), B11 + + LDW .D1T1 *+A6(16), A12 +|| LDW .D2T2 *+B6(20), B12 + + LDW .D1T1 *+A6(24), A13 +|| LDW .D2T2 *+B6(28), B13 + + LDW .D1T1 *+A6(32), A14 +|| LDW .D2T2 *+B6(36), B14 + + LDW .D1T1 *+A6(40), A15 +|| LDW .D2T2 *+B6(44), B15 +|| RET .S2X A3 + NOP 5 +.size longjmp, . - longjmp |