1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /*
- * Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
- * Copyright (c) 2021 Loongson Technology Corporation Limited.All rights
- * reserved.
- * Author: zhoumingtao <[email protected]>
- *
- * This program and the accompanying materials are licensed and made
- * available
- * under the terms and conditions of the BSD License which accompanies
- * this
- * distribution. The full text of the license may be found at
- * http://opensource.org/licenses/bsd-license.php.
- *
- * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
- * BASIS,
- * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
- * IMPLIED.
- */
- .text
- .p2align 3
- /*
- int setjmp(jmp_buf env);
- */
- .globl setjmp
- .type setjmp, @function
- setjmp:
- st.d $ra, $a0, 0x0
- st.d $sp, $a0, 0x8
- st.d $fp, $a0, 0x10
- st.d $s0, $a0, 0x18
- st.d $s1, $a0, 0x20
- st.d $s2, $a0, 0x28
- st.d $s3, $a0, 0x30
- st.d $s4, $a0, 0x38
- st.d $s5, $a0, 0x40
- st.d $s6, $a0, 0x48
- st.d $s7, $a0, 0x50
- st.d $s8, $a0, 0x58
- move $a0, $zero
- jr $ra
- /*
- void longjmp(jmp_buf env, int val);
- */
- .globl longjmp
- .type longjmp, @function
- longjmp:
- ld.d $ra, $a0, 0x0
- ld.d $sp, $a0, 0x8
- ld.d $fp, $a0, 0x10
- ld.d $s0, $a0, 0x18
- ld.d $s1, $a0, 0x20
- ld.d $s2, $a0, 0x28
- ld.d $s3, $a0, 0x30
- ld.d $s4, $a0, 0x38
- ld.d $s5, $a0, 0x40
- ld.d $s6, $a0, 0x48
- ld.d $s7, $a0, 0x50
- ld.d $s8, $a0, 0x58
- addi.d $a0, $zero, 1 # a0 = 1
- beqz $a1, .L0 # if (a1 == 0); goto L0
- move $a0, $a1 # a0 = a1
- .L0:
- jr $ra
|