]> git.saurik.com Git - apple/ld64.git/blobdiff - src/ld/parsers/libunwind/DwarfInstructions.hpp
ld64-253.6.tar.gz
[apple/ld64.git] / src / ld / parsers / libunwind / DwarfInstructions.hpp
index a37c8a041766ef3aca0a21c5b3fe9073d7c4a170..c14c38f871b596a00d12bb76491bd3ae1b6aba29 100644 (file)
@@ -51,6 +51,7 @@
 
 #define CFI_INVALID_ADDRESS ((pint_t)(-1))
 
 
 #define CFI_INVALID_ADDRESS ((pint_t)(-1))
 
+
 namespace libunwind {
 
 ///
 namespace libunwind {
 
 ///
@@ -166,6 +167,14 @@ private:
                                                                                                const Registers_arm64&, const typename CFI_Parser<A>::PrologInfo& prolog,
                                                                                                char warningBuffer[1024]);
        
                                                                                                const Registers_arm64&, const typename CFI_Parser<A>::PrologInfo& prolog,
                                                                                                char warningBuffer[1024]);
        
+  // arm specific variants
+       static bool   isReturnAddressRegister(int regNum, const Registers_arm&);
+       static pint_t getCFA(A& addressSpace, const typename CFI_Parser<A>::PrologInfo& prolog, const Registers_arm&);
+       static compact_unwind_encoding_t encodeToUseDwarf(const Registers_arm&);
+       static compact_unwind_encoding_t createCompactEncodingFromProlog(A& addressSpace, pint_t funcAddr,
+                                                                                               const Registers_arm&, const typename CFI_Parser<A>::PrologInfo& prolog,
+                                                                                               char warningBuffer[1024]);
+       
 };
 
 
 };
 
 
@@ -1960,6 +1969,30 @@ compact_unwind_encoding_t DwarfInstructions<A,R>::createCompactEncodingFromProlo
   return encoding;
 }
 
   return encoding;
 }
 
+
+
+
+//
+//     arm specific functions
+//
+
+template <typename A, typename R>
+compact_unwind_encoding_t DwarfInstructions<A,R>::encodeToUseDwarf(const Registers_arm&) 
+{
+       return UNWIND_ARM_MODE_DWARF;
+}
+
+
+template <typename A, typename R>
+compact_unwind_encoding_t DwarfInstructions<A,R>::createCompactEncodingFromProlog(A& addressSpace, pint_t funcAddr,
+                                                                                               const Registers_arm& r, const typename CFI_Parser<A>::PrologInfo& prolog,
+                                                                                               char warningBuffer[1024])
+{
+       warningBuffer[0] = '\0';
+       return UNWIND_ARM_MODE_DWARF;
+}
+
+
 } // namespace libunwind
 
 
 } // namespace libunwind