Mercurial > hg > CbC > CbC_llvm
comparison libunwind/src/UnwindCursor.hpp @ 173:0572611fdcc8 llvm10 llvm12
reorgnization done
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 11:55:54 +0900 |
parents | 1d019706d866 |
children | 2e18cbf3894f |
comparison
equal
deleted
inserted
replaced
172:9fbae9c8bf63 | 173:0572611fdcc8 |
---|---|
1121 compact_unwind_encoding_t dwarfEncoding(Registers_or1k &) const { | 1121 compact_unwind_encoding_t dwarfEncoding(Registers_or1k &) const { |
1122 return 0; | 1122 return 0; |
1123 } | 1123 } |
1124 #endif | 1124 #endif |
1125 | 1125 |
1126 #if defined (_LIBUNWIND_TARGET_HEXAGON) | |
1127 compact_unwind_encoding_t dwarfEncoding(Registers_hexagon &) const { | |
1128 return 0; | |
1129 } | |
1130 #endif | |
1131 | |
1126 #if defined (_LIBUNWIND_TARGET_MIPS_O32) | 1132 #if defined (_LIBUNWIND_TARGET_MIPS_O32) |
1127 compact_unwind_encoding_t dwarfEncoding(Registers_mips_o32 &) const { | 1133 compact_unwind_encoding_t dwarfEncoding(Registers_mips_o32 &) const { |
1128 return 0; | 1134 return 0; |
1129 } | 1135 } |
1130 #endif | 1136 #endif |
1846 // Remove the thumb bit so the IP represents the actual instruction address. | 1852 // Remove the thumb bit so the IP represents the actual instruction address. |
1847 // This matches the behaviour of _Unwind_GetIP on arm. | 1853 // This matches the behaviour of _Unwind_GetIP on arm. |
1848 pc &= (pint_t)~0x1; | 1854 pc &= (pint_t)~0x1; |
1849 #endif | 1855 #endif |
1850 | 1856 |
1857 // Exit early if at the top of the stack. | |
1858 if (pc == 0) { | |
1859 _unwindInfoMissing = true; | |
1860 return; | |
1861 } | |
1862 | |
1851 // If the last line of a function is a "throw" the compiler sometimes | 1863 // If the last line of a function is a "throw" the compiler sometimes |
1852 // emits no instructions after the call to __cxa_throw. This means | 1864 // emits no instructions after the call to __cxa_throw. This means |
1853 // the return address is actually the start of the next function. | 1865 // the return address is actually the start of the next function. |
1854 // To disambiguate this, back up the pc when we know it is a return | 1866 // To disambiguate this, back up the pc when we know it is a return |
1855 // address. | 1867 // address. |