11f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm/* libunwind - a platform-independent unwind library 23dd5ca671315720501c7e2538547742a230892ddhp.com!davidm Copyright (C) 2003-2004 Hewlett-Packard Co 31f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm Contributed by David Mosberger-Tang <davidm@hpl.hp.com> 41f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm 51f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmThis file is part of libunwind. 61f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm 71f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmPermission is hereby granted, free of charge, to any person obtaining 81f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidma copy of this software and associated documentation files (the 91f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm"Software"), to deal in the Software without restriction, including 101f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmwithout limitation the rights to use, copy, modify, merge, publish, 111f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmdistribute, sublicense, and/or sell copies of the Software, and to 121f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmpermit persons to whom the Software is furnished to do so, subject to 131f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmthe following conditions: 141f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm 151f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmThe above copyright notice and this permission notice shall be 161f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmincluded in all copies or substantial portions of the Software. 171f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm 181f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 191f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 201f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 211f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 221f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 231f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 241f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidmWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ 251f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm 263dd5ca671315720501c7e2538547742a230892ddhp.com!davidm#include "jmpbuf.h" 273dd5ca671315720501c7e2538547742a230892ddhp.com!davidm 281f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm .align 32 291f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm 301f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm .global _setjmp 311f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm 321f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm .proc _setjmp 331f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm 341f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm_setjmp: 351f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm mov r2 = ar.bsp 363dd5ca671315720501c7e2538547742a230892ddhp.com!davidm st8 [r32] = r12 // jmp_buf[JB_SP] = sp 371f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm mov r3 = rp 381f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm 393dd5ca671315720501c7e2538547742a230892ddhp.com!davidm adds r16 = JB_RP*8, r32 403dd5ca671315720501c7e2538547742a230892ddhp.com!davidm adds r17 = JB_BSP*8, r32 411f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm mov r8 = 0 421f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm ;; 433dd5ca671315720501c7e2538547742a230892ddhp.com!davidm st8 [r16] = r3 // jmp_buf[JB_RP] = rp 443dd5ca671315720501c7e2538547742a230892ddhp.com!davidm st8 [r17] = r2 // jmp_buf[JB_BSP] = bsp 451f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm br.ret.sptk.many rp 461f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm 471f694b02c7602db3df9a1147ee71f3c57f11773fhomeip.net!davidm .endp _setjmp 4857e569646368cb730f028ecf1732143474e3e642Jan Kratochvil#ifdef __linux__ 4957e569646368cb730f028ecf1732143474e3e642Jan Kratochvil /* We do not need executable stack. */ 5057e569646368cb730f028ecf1732143474e3e642Jan Kratochvil .section .note.GNU-stack,"",@progbits 5157e569646368cb730f028ecf1732143474e3e642Jan Kratochvil#endif 52