1f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang/* libunwind - a platform-independent unwind library 2f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang Copyright (C) 2003 Hewlett-Packard Co 3f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang Contributed by ... 4f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang 5f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-TangThis file is part of libunwind. 6f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang 7f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-TangPermission is hereby granted, free of charge, to any person obtaining 8f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tanga copy of this software and associated documentation files (the 9f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang"Software"), to deal in the Software without restriction, including 10f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tangwithout limitation the rights to use, copy, modify, merge, publish, 11f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tangdistribute, sublicense, and/or sell copies of the Software, and to 12f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tangpermit persons to whom the Software is furnished to do so, subject to 13f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tangthe following conditions: 14f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang 15f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-TangThe above copyright notice and this permission notice shall be 16f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tangincluded in all copies or substantial portions of the Software. 17f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang 18f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-TangTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-TangEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-TangMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-TangNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 22f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-TangLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-TangOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 24f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-TangWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ 25f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang 26f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang#include "unwind_i.h" 27f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang 28f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tangstatic inline int 29a9dce3c06e6ffcb83957e734d960505415118f00Lassi Tuuracommon_init (struct cursor *c, unsigned use_prev_instr) 30f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang{ 31f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang int ret; 32f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang 337feb6b85751f2f296793de9116eefc37c712be77Tommi Rantala c->dwarf.loc[UNW_HPPA_IP] = DWARF_REG_LOC (&c->dwarf, UNW_HPPA_IP); 347feb6b85751f2f296793de9116eefc37c712be77Tommi Rantala c->dwarf.loc[UNW_HPPA_SP] = DWARF_REG_LOC (&c->dwarf, UNW_HPPA_SP); 35f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang 367feb6b85751f2f296793de9116eefc37c712be77Tommi Rantala ret = dwarf_get (&c->dwarf, c->dwarf.loc[UNW_HPPA_IP], &c->dwarf.ip); 37f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang if (ret < 0) 38f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang return ret; 39f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang 407feb6b85751f2f296793de9116eefc37c712be77Tommi Rantala ret = dwarf_get (&c->dwarf, c->dwarf.loc[UNW_HPPA_SP], &c->dwarf.cfa); 41f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang if (ret < 0) 42f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang return ret; 43a9dce3c06e6ffcb83957e734d960505415118f00Lassi Tuura 449e98f15e9aee12e67cd5956d06ccb559f6a06213Lassi Tuura c->dwarf.stash_frames = 0; 45a9dce3c06e6ffcb83957e734d960505415118f00Lassi Tuura c->dwarf.use_prev_instr = use_prev_instr; 461c82a52129ceced9f271dd782057351275c38a41Christopher Ferris /* ANDROID support update. */ 471c82a52129ceced9f271dd782057351275c38a41Christopher Ferris c->dwarf.frame = 0; 481c82a52129ceced9f271dd782057351275c38a41Christopher Ferris /* End of ANDROID update. */ 49f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang return 0; 50f176ad6fc6d4982e92c330265b00419e93b79f27David Mosberger-Tang} 51