On Thu, Jun 30, 2011 at 7:08 AM, Jason Merrill <ja...@redhat.com> wrote: > On 06/28/2011 02:53 PM, H.J. Lu wrote: >> >> This updated patch. It allows multiple unwind contexts. It replaces >> >> char by_value[DWARF_FRAME_REGISTERS+1]; >> >> with >> >> _Unwind_Word value[DWARF_FRAME_REGISTERS+1]; >> >> The code is cleaner than conditionally replacing >> >> void *reg[DWARF_FRAME_REGISTERS+1]; >> >> with >> >> _Unwind_Word reg[DWARF_FRAME_REGISTERS+1]; >> >> with a bigger unwind context. > > It doesn't seem cleaner to me.
Register may be saved/restored either by address or value. My patch doesn't change the reg field. The other way will be #ifdef USE_UNWIND_WORD _Unwind_Word reg[DWARF_FRAME_REGISTERS+1]; #else void *reg[DWARF_FRAME_REGISTERS+1]; #endif We need it so that we are binary compatible with the existing unwind context. Once we do that we need many #ifdef USE_UNWIND_WORD #endif whenever the reg field is accessed since the reg field is changed. -- H.J.