diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-05-12 18:42:45 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-05-12 18:42:45 +0000 |
commit | 73eaf1ba572d0f5c415459c0b5290104e8a953a8 (patch) | |
tree | ce9974611e5f1cdf18d989728b95ed19cf47ca2d /gcc/unwind-pe.h | |
parent | d0a7822b32f81948b7989aaa65441a22e4b97fbe (diff) | |
download | gcc-73eaf1ba572d0f5c415459c0b5290104e8a953a8.tar.gz |
Add per-function commentary.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42003 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/unwind-pe.h')
-rw-r--r-- | gcc/unwind-pe.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/unwind-pe.h b/gcc/unwind-pe.h index 9eda448b432..f940342b03d 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) { |