137be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang/* libunwind - a platform-independent unwind library
237be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang   Copyright (c) 2003, 2005 Hewlett-Packard Development Company, L.P.
337be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang	Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
437be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang
537be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang   Modified for x86_64 by Max Asbock <masbock@us.ibm.com>
637be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang
737be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-TangThis file is part of libunwind.
837be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang
937be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-TangPermission is hereby granted, free of charge, to any person obtaining
1037be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tanga copy of this software and associated documentation files (the
1137be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang"Software"), to deal in the Software without restriction, including
1237be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tangwithout limitation the rights to use, copy, modify, merge, publish,
1337be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tangdistribute, sublicense, and/or sell copies of the Software, and to
1437be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tangpermit persons to whom the Software is furnished to do so, subject to
1537be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tangthe following conditions:
1637be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang
1737be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-TangThe above copyright notice and this permission notice shall be
1837be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tangincluded in all copies or substantial portions of the Software.
1937be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang
2037be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-TangTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
2137be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-TangEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
2237be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-TangMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
2337be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-TangNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
2437be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-TangLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
2537be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-TangOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
2637be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-TangWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
2737be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang
2837be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang/* copy of include/tdep-x86/dwarf-config.h, modified slightly for x86-64
2937be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang   some consolidation is possible here */
3037be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang
3137be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang#ifndef dwarf_config_h
3237be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang#define dwarf_config_h
3337be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang
3437be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang/* XXX need to verify if this value is correct */
35e09f9701ffcd05b097565d15daa87ac1b2d84299Arun Sharma#ifdef CONFIG_MSABI_SUPPORT
36e09f9701ffcd05b097565d15daa87ac1b2d84299Arun Sharma#define DWARF_NUM_PRESERVED_REGS	33
37e09f9701ffcd05b097565d15daa87ac1b2d84299Arun Sharma#else
3837be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang#define DWARF_NUM_PRESERVED_REGS	17
39e09f9701ffcd05b097565d15daa87ac1b2d84299Arun Sharma#endif
4037be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang
41e09f9701ffcd05b097565d15daa87ac1b2d84299Arun Sharma#define DWARF_REGNUM_MAP_LENGTH		DWARF_NUM_PRESERVED_REGS
4237be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang
4337be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang/* Return TRUE if the ADDR_SPACE uses big-endian byte-order.  */
4437be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang#define dwarf_is_big_endian(addr_space)	0
4537be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang
4637be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang/* Convert a pointer to a dwarf_cursor structure to a pointer to
4737be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang   unw_cursor_t.  */
4837be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang#define dwarf_to_cursor(c)	((unw_cursor_t *) (c))
4937be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang
5037be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tangtypedef struct dwarf_loc
5137be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang  {
5237be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang    unw_word_t val;
5337be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang#ifndef UNW_LOCAL_ONLY
5437be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang    unw_word_t type;		/* see X86_LOC_TYPE_* macros.  */
5537be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang#endif
5637be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang  }
5737be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tangdwarf_loc_t;
5837be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang
5937be21c01ebe23402d4b5f1391e7a83da34e8c32David Mosberger-Tang#endif /* dwarf_config_h */
60