Re: [patch] C6X unwinding/exception handling

Andrew Haley <[email protected]>
Newsgroups gmane.comp.gcc.java.devel
Message-ID <[email protected]>
On 10/17/2011 12:01 PM, Matthias Klose wrote:
> On 10/10/2011 02:23 PM, Paul Brook wrote:
>>> Index: libjava/exception.cc
>>> ===================================================================
>>> --- libjava/exception.cc	(revision 179739)
>>> +++ libjava/exception.cc	(working copy)
>>> @@ -135,6 +135,7 @@
>>>  {
>>>    _Unwind_Ptr Start;
>>>    _Unwind_Ptr LPStart;
>>> +  _Unwind_Ptr ttype_base;
>>>    const unsigned char *TType;
>>>    const unsigned char *action_table;
>>>    unsigned char ttype_encoding;
>>> @@ -184,7 +185,7 @@
>>>    _Unwind_Ptr ptr;
>>>
>>>    ptr = (_Unwind_Ptr) (info->TType - (i * 4));
>>> -  ptr = _Unwind_decode_target2(ptr);
>>> +  ptr = _Unwind_decode_typeinfo_ptr (info->ttype_base, (_Unwind_Word)
>>> ptr);
>>>
>>>    return reinterpret_cast<void **>(ptr);
>>>  }
>>> @@ -325,6 +326,7 @@
>>>
>>>    // Parse the LSDA header.
>>>    p = parse_lsda_header (context, language_specific_data, &info);
>>> +  info.ttype_base = base_of_encoded_value (info.ttype_encoding, context);
>>>  #ifdef HAVE_GETIPINFO
>>>    ip = _Unwind_GetIPInfo (context, &ip_before_insn);
>>>  #else
>>
>> No.  The purpose of my patch was to remove the arm specific code.
>>
>> The only difference I can see in this bit of code is that libstdc++ uses 
>> base_of_encoded_value/read_encoded_value_with_base whereas libjava uses 
>> context/read_encoded_value.
>>
>> I expect you want something like the patch below (completely untested).
> 
> I checked the attached patch, test results at
> http://gcc.gnu.org/ml/gcc-testresults/2011-10/msg01377.html
> 
> which are the same as with my suggested patch.
> 
> Ok for the trunk?

OK.  One question: where is_GLIBCXX_OVERRIDE_TTYPE_ENCODING defined?

Andrew.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.