diff options
author | David Holsgrove <david.holsgrove@xilinx.com> | 2014-02-17 11:08:21 +1000 |
---|---|---|
committer | David Holsgrove <david.holsgrove@xilinx.com> | 2014-02-17 11:08:21 +1000 |
commit | ef114eafbff80525d079d7d6fadd69a58eb8dcc3 (patch) | |
tree | e643e00a609e9a6cda5ae90e2eb499cb992dd91b /sysdeps/microblaze/__longjmp.S | |
parent | ab7ac0f2cf8731fe4c3f3aea6088a7c0127b5725 (diff) | |
download | glibc-ef114eafbff80525d079d7d6fadd69a58eb8dcc3.tar.gz glibc-ef114eafbff80525d079d7d6fadd69a58eb8dcc3.tar.xz glibc-ef114eafbff80525d079d7d6fadd69a58eb8dcc3.zip |
[MicroBlaze]: Move MicroBlaze from ports to sysdeps.
2014-02-17 David Holsgrove <david.holsgrove@xilinx.com> * sysdeps/microblaze: Move directory from ports/sysdeps/microblaze. * sysdeps/unix/sysv/linux/microblaze: Move directory from ports/sysdeps/unix/sysv/linux/microblaze. * README: Add missing listing for microblaze*-*-linux-gnu. Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
Diffstat (limited to 'sysdeps/microblaze/__longjmp.S')
-rw-r--r-- | sysdeps/microblaze/__longjmp.S | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/sysdeps/microblaze/__longjmp.S b/sysdeps/microblaze/__longjmp.S new file mode 100644 index 0000000000..dc588ebfe2 --- /dev/null +++ b/sysdeps/microblaze/__longjmp.S @@ -0,0 +1,55 @@ +/* Copyright (C) 1997-2014 Free Software Foundation, Inc. + + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library. If not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> + +/* Jump to the position specified by ENV, causing the + setjmp call there to return VAL, or 1 if VAL is 0. */ + +/* void __longjmp (__jmp_buf env, int val) */ + +ENTRY(__longjmp) + lwi r1,r5,0 + lwi r2,r5,4 + lwi r13,r5,8 + lwi r14,r5,12 + lwi r15,r5,16 + lwi r16,r5,20 + lwi r17,r5,24 + lwi r18,r5,28 + lwi r19,r5,32 + lwi r20,r5,36 + lwi r21,r5,40 + lwi r22,r5,44 + lwi r23,r5,48 + lwi r24,r5,52 + lwi r25,r5,56 + lwi r26,r5,60 + lwi r27,r5,64 + lwi r28,r5,68 + lwi r29,r5,72 + lwi r30,r5,76 + lwi r31,r5,80 + addk r3,r6,r0 + beqi r3,L(return_1) + rtsd r15,8 + nop +L(return_1): + rtsd r15,8 + addik r3,r0,1 /* delay slot. */ +END(__longjmp) |