Author: tkreuzer Date: Wed Nov 19 13:03:40 2008 New Revision: 37462
URL: http://svn.reactos.org/svn/reactos?rev=37462&view=rev Log: - use (unsigned) long instead of ULONG - add DW_CFA_offset_extended_sf
Modified: branches/ros-amd64-bringup/reactos/tools/rsym/dwarf2.h branches/ros-amd64-bringup/reactos/tools/rsym/rsym64.c
Modified: branches/ros-amd64-bringup/reactos/tools/rsym/dwarf2.h URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/tools/... ============================================================================== --- branches/ros-amd64-bringup/reactos/tools/rsym/dwarf2.h [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/tools/rsym/dwarf2.h [iso-8859-1] Wed Nov 19 13:03:40 2008 @@ -802,27 +802,27 @@
typedef struct { - ULONG Length; + unsigned long Length; char *Next; char *CiePointer; - ULONG PcBegin; - ULONG PcRange; - ULONG AugLength; + unsigned long PcBegin; + unsigned long PcRange; + unsigned long AugLength; char *AugData; char *Instructions; } DW2FDE, *PDW2FDE;
typedef struct _CFSTATE { - ULONG Location; - ULONG Code; - ULONG Reg; - ULONG Reg2; - ULONG FramePtr; - ULONG FramePtrDiff; - ULONG Offset; - ULONG IsUwop; - ULONG Scope; + unsigned long Location; + unsigned long Code; + unsigned long Reg; + unsigned long Reg2; + long FramePtr; + long FramePtrDiff; + long Offset; + unsigned long IsUwop; + unsigned long Scope; } DW2CFSTATE, *PDW2CFSTATE;
#define NextCIE(p) ((void*)((char*)p + p->Length + 4))
Modified: branches/ros-amd64-bringup/reactos/tools/rsym/rsym64.c URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/tools/... ============================================================================== --- branches/ros-amd64-bringup/reactos/tools/rsym/rsym64.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/tools/rsym/rsym64.c [iso-8859-1] Wed Nov 19 13:03:40 2008 @@ -131,7 +131,7 @@ { State->Code = DW_CFA_offset; State->Reg = Code & 0x3f; - Length += DwDecodeUleb128(&State->Offset, pc + 1); + Length += DwDecodeUleb128((unsigned long*)&State->Offset, pc + 1); State->Offset *= 8; // fixme data alignment State->IsUwop = 1; } @@ -162,9 +162,14 @@ break; case DW_CFA_offset_extended: Length += DwDecodeUleb128(&State->Reg, pc + Length); - Length += DwDecodeUleb128(&State->Offset, pc + Length); + Length += DwDecodeUleb128((unsigned long*)&State->Offset, pc + Length); State->IsUwop = 1; break; + case DW_CFA_offset_extended_sf: + Length += DwDecodeUleb128(&State->Reg, pc + Length); + Length += DwDecodeSleb128(&State->Offset, pc + Length); + State->IsUwop = 1; + break; case DW_CFA_restore_extended: Length += DwDecodeUleb128(&State->Reg, pc + Length); break; @@ -184,19 +189,19 @@ break; case DW_CFA_def_cfa: Length += DwDecodeUleb128(&State->Reg, pc + Length); - Length += DwDecodeUleb128(&State->FramePtr, pc + Length); + Length += DwDecodeUleb128((unsigned long*)&State->FramePtr, pc + Length); State->IsUwop = 1; break; case DW_CFA_def_cfa_register: Length += DwDecodeUleb128(&State->Reg, pc + Length); break; case DW_CFA_def_cfa_offset: - Length += DwDecodeUleb128(&State->FramePtr, pc + Length); + Length += DwDecodeUleb128((unsigned long*)&State->FramePtr, pc + Length); State->IsUwop = 1; break; case DW_CFA_def_cfa_sf: Length += DwDecodeUleb128(&State->Reg, pc + Length); - Length += DwDecodeSleb128((LONG*)&State->FramePtr, pc + Length); + Length += DwDecodeSleb128(&State->FramePtr, pc + Length); State->FramePtr *= 8; // data alignment State->IsUwop = 1; break;