Commit 378683cf by Richard Henderson Committed by Richard Henderson

libgcc-std.ver (_Unwind_GetCFA): New.

        * libgcc-std.ver (_Unwind_GetCFA): New.
        * unwind-dw2.c (_Unwind_GetCFA): New.
        * unwind-libunwind.c (_Unwind_GetCFA): New.
        * unwind-sjlj.c (_Unwind_GetCFA): New.
        * unwind.h: Declare it.

From-SVN: r65190
parent 63dfa9bb
2003-04-02 Richard Henderson <rth@redhat.com>
* libgcc-std.ver (_Unwind_GetCFA): New.
* unwind-dw2.c (_Unwind_GetCFA): New.
* unwind-libunwind.c (_Unwind_GetCFA): New.
* unwind-sjlj.c (_Unwind_GetCFA): New.
* unwind.h: Declare it.
Thu Apr 3 00:31:21 CEST 2003 Jan Hubicka <jh@suse.cz> Thu Apr 3 00:31:21 CEST 2003 Jan Hubicka <jh@suse.cz>
PR inline-asm/8088 PR inline-asm/8088
......
...@@ -179,6 +179,7 @@ GCC_3.0 { ...@@ -179,6 +179,7 @@ GCC_3.0 {
%inherit GCC_3.3 GCC_3.0 %inherit GCC_3.3 GCC_3.0
GCC_3.3 { GCC_3.3 {
_Unwind_FindEnclosingFunction _Unwind_FindEnclosingFunction
_Unwind_GetCFA
} }
%inherit GCC_3.4 GCC_3.3 %inherit GCC_3.4 GCC_3.3
......
...@@ -173,6 +173,14 @@ _Unwind_GetGR (struct _Unwind_Context *context, int index) ...@@ -173,6 +173,14 @@ _Unwind_GetGR (struct _Unwind_Context *context, int index)
return * (_Unwind_Word *) context->reg[index]; return * (_Unwind_Word *) context->reg[index];
} }
/* Get the value of the CFA as saved in CONTEXT. */
_Unwind_Word
_Unwind_GetCFA (struct _Unwind_Context *context)
{
return context->cfa;
}
/* Overwrite the saved value for register REG in CONTEXT with VAL. */ /* Overwrite the saved value for register REG in CONTEXT with VAL. */
inline void inline void
......
...@@ -105,6 +105,15 @@ _Unwind_GetGR (struct _Unwind_Context *context, int index) ...@@ -105,6 +105,15 @@ _Unwind_GetGR (struct _Unwind_Context *context, int index)
return ret; return ret;
} }
/* Get the value of the CFA as saved in CONTEXT. */
_Unwind_Word
_Unwind_GetCFA (struct _Unwind_Context *context)
{
/* ??? Is there any way to get this information? */
return NULL;
}
/* Overwrite the saved value for register REG in CONTEXT with VAL. */ /* Overwrite the saved value for register REG in CONTEXT with VAL. */
void void
......
...@@ -170,6 +170,15 @@ _Unwind_GetGR (struct _Unwind_Context *context, int index) ...@@ -170,6 +170,15 @@ _Unwind_GetGR (struct _Unwind_Context *context, int index)
return context->fc->data[index]; return context->fc->data[index];
} }
/* Get the value of the CFA as saved in CONTEXT. */
_Unwind_Word
_Unwind_GetCFA (struct _Unwind_Context *context)
{
/* ??? Ideally __builtin_setjmp places the CFA in the jmpbuf. */
return NULL;
}
void void
_Unwind_SetGR (struct _Unwind_Context *context, int index, _Unwind_Word val) _Unwind_SetGR (struct _Unwind_Context *context, int index, _Unwind_Word val)
{ {
......
...@@ -138,6 +138,9 @@ extern void _Unwind_SetGR (struct _Unwind_Context *, int, _Unwind_Word); ...@@ -138,6 +138,9 @@ extern void _Unwind_SetGR (struct _Unwind_Context *, int, _Unwind_Word);
extern _Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *); extern _Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *);
extern void _Unwind_SetIP (struct _Unwind_Context *, _Unwind_Ptr); extern void _Unwind_SetIP (struct _Unwind_Context *, _Unwind_Ptr);
/* @@@ Retrieve the CFA of the given context. */
extern _Unwind_Word _Unwind_GetCFA (struct _Unwind_Context *);
extern void *_Unwind_GetLanguageSpecificData (struct _Unwind_Context *); extern void *_Unwind_GetLanguageSpecificData (struct _Unwind_Context *);
extern _Unwind_Ptr _Unwind_GetRegionStart (struct _Unwind_Context *); extern _Unwind_Ptr _Unwind_GetRegionStart (struct _Unwind_Context *);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment