From 73eaf1ba572d0f5c415459c0b5290104e8a953a8 Mon Sep 17 00:00:00 2001 From: rth Date: Sat, 12 May 2001 18:42:45 +0000 Subject: [PATCH] Add per-function commentary. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42003 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/unwind-pe.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gcc/unwind-pe.h b/gcc/unwind-pe.h index 9eda448..f940342 100644 --- a/gcc/unwind-pe.h +++ b/gcc/unwind-pe.h @@ -42,6 +42,11 @@ #define DW_EH_PE_funcrel 0x40 #define DW_EH_PE_indirect 0x80 + + +/* Given an encoding, return the number of bytes the format occupies. + This is only defined for fixed-size encodings, and so does not + include leb128. */ static unsigned int size_of_encoded_value (unsigned char encoding) @@ -63,6 +68,11 @@ size_of_encoded_value (unsigned char encoding) abort (); } +/* Given an encoding and an _Unwind_Context, return the base to which + the encoding is relative. This base may then be passed to + read_encoded_value_with_base for use when the _Unwind_Context is + not available. */ + static _Unwind_Ptr base_of_encoded_value (unsigned char encoding, _Unwind_Context *context) { @@ -85,6 +95,10 @@ base_of_encoded_value (unsigned char encoding, _Unwind_Context *context) abort (); } +/* Load an encoded value from memory at P. The value is returned in VAL; + The function returns P incremented past the value. BASE is as given + by base_of_encoded_value for this encoding in the appropriate context. */ + static const unsigned char * read_encoded_value_with_base (unsigned char encoding, _Unwind_Ptr base, const unsigned char *p, _Unwind_Ptr *val) @@ -186,6 +200,9 @@ read_encoded_value_with_base (unsigned char encoding, _Unwind_Ptr base, return p; } +/* Like read_encoded_value_with_base, but get the base from the context + rather than providing it directly. */ + static inline const unsigned char * read_encoded_value (_Unwind_Context *context, unsigned char encoding, const unsigned char *p, _Unwind_Ptr *val) @@ -195,12 +212,17 @@ read_encoded_value (_Unwind_Context *context, unsigned char encoding, p, val); } +/* Read an unsigned leb128 value from P, store the value in VAL, return + P incremented past the value. */ + static inline const unsigned char * read_uleb128 (const unsigned char *p, _Unwind_Ptr *val) { return read_encoded_value_with_base (DW_EH_PE_uleb128, 0, p, val); } +/* Similar, but read a signed leb128 value. */ + static inline const unsigned char * read_sleb128 (const unsigned char *p, _Unwind_Ptr *val) { -- 2.7.4